我正在尝试设置一个gulp-watch,当某些文件发生变化时会触发gulp任务。为此,我使用以下代码:
gulp.task('watchChanges', function(cb){
console.log("Looking for file changes in " + watchPath+".");
return watch(watchPath, ['FilesChanged']);
});
gulp.task('FilesChanged', function (cb){
FilesChanged();
cb();
})
function FilesChanged()
{
console.log("Files changed:")
}
每当文件发生变化时,如果'FilesChanged'任务会触发,我会在控制台中看到“Files changed:”文本。这不会发生。
当我将watchChanges任务更改为:
gulp.task('watchChanges', function(cb){
console.log("Looking for file changes in " + watchPath+".");
return watch(watchPath, FilesChanged);
});
任何人都可以解释为什么第一段代码没有正确执行吗?
答案 0 :(得分:0)
如果您查看其功能定义,则使用gulp-watch:
观察(glob,[options,callback])
你可以看到它将需要一个回调函数,这就是你
的原因返回观察(watchPath,FilesChanged);
有效,
返回观察(watchPath,['FilesChanged']);
没有。 gulp-watch不会像gulp.watch那样执行一系列任务:
gulp-watch和gulp.watch是两个完全不同的东西。您可能想要的是gulp.watch(glob [,opts],tasks)
gulp.task('watchChanges', function(cb){
console.log("Looking for file changes in " + watchPath+".");
gulp.watch(watchPath, ['FilesChanged']);
});
如果您要查看正在处理的文件,请尝试get the current file name中的一项建议。