gulp.lastRun()介紹
檢索在當(dāng)前運(yùn)行進(jìn)程中成功完成任務(wù)的最后一次時(shí)間。最有用的后續(xù)任務(wù)運(yùn)行時(shí),監(jiān)視程序正在運(yùn)行。當(dāng)監(jiān)視程序正在運(yùn)行時(shí),對(duì)于后續(xù)的任務(wù)運(yùn)行最有用。
當(dāng)與 src() 組合時(shí),通過(guò)跳過(guò)自上次成功完成任務(wù)以來(lái)沒(méi)有更 改的文件,使增量構(gòu)建能夠加快執(zhí)行時(shí)間。
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);
};
lastRun(task, [precision])
參數(shù) | 類(lèi)型 | 描述 |
---|---|---|
task
(required) |
function
string |
已注冊(cè)任務(wù)的任務(wù)函數(shù)或字符串別名。 |
precision | number | 默認(rèn)值: Node v0.10 版本中是 1000 ,在 Node v0.12+ 版本中是 0 。在下面的 時(shí)間戳精度 章中有詳細(xì)說(shuō)明。 |
返回一個(gè)時(shí)間戳(以毫秒為單位),表示任務(wù)的最后完成時(shí)間。如果任務(wù)尚未運(yùn)行或已經(jīng)失敗,則返回 undefined。
為了避免緩存無(wú)效狀態(tài)(invalid state),因此,如果任務(wù)出錯(cuò),則返回值為 undefined。
當(dāng)傳入的參數(shù)值不是字符串或函數(shù)時(shí),會(huì)拋出一個(gè)錯(cuò)誤,并顯示錯(cuò)誤信息 "Only functions can check lastRun"。
當(dāng)對(duì)不可擴(kuò)展的函進(jìn)行數(shù)調(diào)或 Node 不支持 WeakMap 時(shí),會(huì)拋出一個(gè)錯(cuò)誤,并顯示錯(cuò)誤信息 "Only extensible functions can check lastRun"。
雖然時(shí)間戳的精度有合理的默認(rèn)值,但仍然可以通過(guò) precision 參數(shù)對(duì)其進(jìn)行舍入。如果你所使用文件系統(tǒng)或 Node 版本對(duì)文件的時(shí)間屬性精度不高的話(huà),則很有用。
文件的 mtime stat 精度會(huì)由于 node 版本和/或所用的文件系統(tǒng)而出現(xiàn)誤差。
平臺(tái) | 精度 |
---|---|
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 |
更多建議: