¥Retrieves the last time a task was successfully completed during the current running process. Most useful on subsequent task runs while a watcher is running.

src() 结合使用时,可以通过跳过自上次成功完成任务以来未更改的文件,启用增量构建来加快执行时间。

¥When combined with src(), enables incremental builds to speed up execution times by skipping files that haven't changed since the last successful task completion.



const { src, dest, lastRun, watch } = require('gulp');
const imagemin = require('gulp-imagemin');
function images() {
return src('src/images/**/*.jpg', { since: lastRun(images) })
exports.default = function() {
watch('src/images/**/*.jpg', images);



lastRun(task, [precision])



precisionnumber默认:节点 v0.10 上为 1000,节点 v0.12+ 上为 0。详细内容请参见下面的 时间戳精度 部分。



时间戳(以毫秒为单位),与任务的上次完成时间相匹配。如果任务尚未运行或失败,则返回 undefined

¥A timestamp (in milliseconds), matching the last completion time of the task. If the task has not been run or has failed, returns undefined.

为了避免缓存无效状态,如果任务出错,返回值将为 undefined

¥To avoid an invalid state being cached, the returned value will be undefined if a task errors.



当使用字符串或函数以外的值调用时,会抛出错误并显示消息 "只有函数可以检查 lastRun"。

¥When called with a value other than a string or function, throws an error with the message, "Only functions can check lastRun".

当调用不可扩展函数并且 Node 缺少 WeakMap 时,会抛出错误并显示消息 "只有可扩展函数才能检查 lastRun"。

¥When called on a non-extensible function and Node is missing WeakMap, throws an error with the message, "Only extensible functions can check lastRun".


¥Timestamp precision

虽然时间戳精度有合理的默认值,但可以使用 precision 参数对它们进行舍入。如果你的文件系统或节点版本的文件时间属性精度有损,则非常有用。

¥While there are sensible defaults for the precision of timestamps, they can be rounded using the precision parameter. Useful if your file system or Node version has a lossy precision on file time attributes.

  • lastRun(someTask) 返回 1426000001111

    ¥lastRun(someTask) returns 1426000001111

  • lastRun(someTask, 100) 返回 1426000001100

    ¥lastRun(someTask, 100) returns 1426000001100

  • lastRun(someTask, 1000) 返回 1426000001000

    ¥lastRun(someTask, 1000) returns 1426000001000

文件的 实时统计 精度可能会有所不同,具体取决于所使用的节点版本和/或文件系统。

¥A file's mtime stat precision may vary depending on the node version and/or the file system used.

节点 v0.101000 毫秒
节点 v0.12+1 毫秒
FAT32 文件系统2000 毫秒
HFS+ 或 Ext3 文件系统1000 毫秒
使用节点 v0.10 的 NTFS1 秒
使用节点 0.12+ 的 NTFS100 毫秒
使用 Node v0.10 的 Ext41000 毫秒
使用 Node 0.12+ 的 Ext41 毫秒