Gulp.watch 任务未调用 (gulp 4.0.0)
Gulp.watch tasks not called (gulp 4.0.0)
我刚刚将一个旧项目从 gulp 3 迁移到 gulp 4.0.0。我在监视功能中执行 gulp.watch 任务 运行 时遇到问题。我 运行 正在 Windows。
手表功能如下:
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));
}
在 gulp 文件的末尾,我有 exports.watch = watch;
.
当我 运行 时,我得到以下输出:
[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
也就是说
- 没有文件被复制
- 没有输出从函数 copytosomelocation 记录到控制台。
我错过了什么?
我忽略了将必要的任务依赖性更改带到新结构中。
原表函数结构如下:
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);
我刚刚将一个旧项目从 gulp 3 迁移到 gulp 4.0.0。我在监视功能中执行 gulp.watch 任务 运行 时遇到问题。我 运行 正在 Windows。
手表功能如下:
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));
}
在 gulp 文件的末尾,我有 exports.watch = watch;
.
当我 运行 时,我得到以下输出:
[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
也就是说 - 没有文件被复制 - 没有输出从函数 copytosomelocation 记录到控制台。
我错过了什么?
我忽略了将必要的任务依赖性更改带到新结构中。
原表函数结构如下:
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);