我正在尝试设置一个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:")
}
每当文件更改时,我希望"文件已更改"任务会触发并且我会在控制台中看到"文件已更改:"文本。这不会发生。
当我将手表更改任务时:
gulp.task('watchChanges', function(cb){
console.log("Looking for file changes in " + watchPath+".");
return watch(watchPath, FilesChanged);
});
谁能解释为什么第一段代码无法正确执行?
由于您使用的是gulp-watch,如果您查看其函数定义:
手表(全球,[选项,回调](
你可以看到它将需要一个回调函数,这就是为什么你的
返回监视(监视路径,文件已更改(;
作品和
返回监视(监视路径,["文件已更改"](;
不。 gulp-watch不会像gulp.watch那样承担一系列任务:
gulp.watch(glob[, opts], tasks(
gulp-watch和gulp.watch是两个完全不同的东西。 你可能想要的是
gulp.task('watchChanges', function(cb){
console.log("Looking for file changes in " + watchPath+".");
gulp.watch(watchPath, ['FilesChanged']);
});
如果随后要查看正在处理哪些文件,请尝试获取当前文件名中的建议之一。