gulp.lastRun()
2020-09-30 18:06 更新
gulp.lastRun()介绍
检索在当前运行进程中成功完成任务的最后一次时间。最有用的后续任务运行时,监视程序正在运行。当监视程序正在运行时,对于后续的任务运行最有用。
当与 src() 组合时,通过跳过自上次成功完成任务以来没有更 改的文件,使增量构建能够加快执行时间。
gulp.lastRun()用法
const { src, dest, lastRun, watch } = require('gulp');
const imagemin = require('gulp-imagemin');
function images() {
return src('src/images/**/*.jpg', { since: lastRun(images) })
.pipe(imagemin())
.pipe(dest('build/img/'));
}
exports.default = function() {
watch('src/images/**/*.jpg', images);
};
gulp.lastRun()函数原型
lastRun(task, [precision])
参数
参数 | 类型 | 描述 |
---|---|---|
task
(required) |
function
string |
已注册任务的任务函数或字符串别名。 |
precision | number | 默认值: Node v0.10 版本中是 1000 ,在 Node v0.12+ 版本中是 0 。在下面的 时间戳精度 章中有详细说明。 |
返回值
返回一个时间戳(以毫秒为单位),表示任务的最后完成时间。如果任务尚未运行或已经失败,则返回 undefined。
为了避免缓存无效状态(invalid state),因此,如果任务出错,则返回值为 undefined。
可能出现的错误
当传入的参数值不是字符串或函数时,会抛出一个错误,并显示错误信息 "Only functions can check lastRun"。
当对不可扩展的函进行数调或 Node 不支持 WeakMap 时,会抛出一个错误,并显示错误信息 "Only extensible functions can check lastRun"。
时间戳精度
虽然时间戳的精度有合理的默认值,但仍然可以通过 precision 参数对其进行舍入。如果你所使用文件系统或 Node 版本对文件的时间属性精度不高的话,则很有用。
- lastRun(someTask) 返回 1426000001111
- lastRun(someTask, 100) 返回 1426000001100
- lastRun(someTask, 1000) 返回 1426000001000
文件的 mtime stat 精度会由于 node 版本和/或所用的文件系统而出现误差。
平台 | 精度 |
---|---|
Node v0.10 | 1000ms |
Node v0.12+ | 1ms |
FAT32 file system | 2000ms |
HFS+ or Ext3 file systems | 1000ms |
NTFS using Node v0.10 | 1s |
NTFS using Node 0.12+ | 100ms |
Ext4 using Node v0.10 | 1000ms |
Ext4 using Node 0.12+ | 1ms |
以上内容是否对您有帮助:
更多建议: