Задание обратного вызова глотка часов не стреляет
Я пытаюсь настроить часы gulp, которые запускают задачу 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, и я видел бы текст "Файлы изменены:" в консоли. Этого не происходит
Когда я меняю задачу watchChanges на следующую:
gulp.task('watchChanges', function(cb){
console.log("Looking for file changes in " + watchPath+".");
return watch(watchPath, FilesChanged);
});
Может кто-нибудь объяснить, почему первый кусок кода не выполняется правильно?
1 ответ
Since you are using gulp-watch if you look at its function definition:
watch(glob, [options, callback])
you can see that it will take a callback function which is why your
return watch(watchPath, FilesChanged);
works and
return watch(watchPath, ['FilesChanged']);
не. 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']);
});
Если вы хотите увидеть, какие файлы обрабатываются, попробуйте одно из предложений, чтобы получить текущее имя файла.