[英]Gulp.watch tasks not called (gulp 4.0.0)
我剛剛將一個舊項目從 gulp 3 遷移到 gulp 4.0.0。 我無法讓 gulp.watch 任務在我的手表 function 中運行。 我在 Windows 上運行。
手表function如下:
function watch(done) {
gulp.watch(LAYOUTSFILES, copytosomelocation);
gulp.watch(MODULEFILES, copymodulestosomelocation);
gulp.watch(DLLFILES, gacdeploy);
gulp.watch("./Styles/**/*.less", cssless);
console.log("watching");
done();
}
位置的格式如下(在 gulp 3 中工作,因此位置至少是正確的):
let LAYOUTSFILES = [
"./Folder/Project/**/*.*"
];
這是第一個被調用的任務:
function copytosomelocation() {
console.log("In copy");
return gulp.src(LAYOUTSFILES)
.pipe(fileCache.filter())
.pipe(gulp.dest(OUTLAYOUTS));
}
在 gulpfile 的末尾,我有 exports.watch exports.watch = watch;
.
當我運行時,我得到以下 output:
[18:43:59] Using gulpfile
D:\git\repo\folder\someproject\gulpfile.js
[18:43:59] Starting 'watch'...
watching
[18:43:59] Finished 'watch' after 17 ms
也就是說 - 沒有文件被復制 - 沒有 output 從 function copytosomelocation 記錄到控制台。
我錯過了什么?
我忽略了對新結構進行必要的任務依賴性更改。
原表function結構如下:
gulp.task("watch", ["webpack-watch"], () => { ... });
其中描述了對以下內容的依賴:
gulp.task('webpack-watch', (done) => {
runWebpack(["-d"], true, done);
});
function runWebpack(params, watch, done) {
params = params || [];
params.push("--color");
if (watch) {
params.push("-w");
}
if (watch) {
spawnCommand("webpack", params);
done(); //return immidiately when watching
} else {
spawnCommand("webpack", params, done);
}
}
如果沒有這個功能,gulp 正在監視一個只有在 webpack-watch 運行時才會更新的目錄。 我通過如下更新手表導出解決了這個問題:
exports.watch = gulp.series('webpack-watch', watch);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.