【发布时间】:2015-05-28 18:58:09
【问题描述】:
我正在使用这个 Gulp Watch 示例:https://github.com/floatdrop/gulp-watch/blob/master/docs/readme.md#starting-tasks-on-events。
var gulp = require('gulp');
var watch = require('gulp-watch');
var batch = require('gulp-batch');
gulp.task('build', function () { console.log('Working!'); });
gulp.task('watch', function () {
watch('**/*.js', batch(function () {
gulp.start('build');
}));
});
当我在我的 Windows 8 机器上运行它时,它只在我第一次更改文件时运行:
C:\test>gulp watch
[08:40:21] Using gulpfile C:\test\gulpfile.js
[08:40:21] Starting 'watch'...
[08:40:21] Finished 'watch' after 2.69 ms
[08:40:31] Starting 'build'...
Working!
[08:40:31] Finished 'build' after 261 µs
下次什么都没有发生。为什么?
【问题讨论】:
-
您是否更改了任何文件?因为当你执行 gulp watch 时,它正在监视文件。然后,当您更改文件时,会触发 watch 中的函数。
-
是的,也许我不够清楚。我正在更改文件,但
watch仅在我第一次更改文件时执行。例如。如果我启动gulp watch,更改我的 *.js 文件中的某些内容并保存它,手表正在运行。如果我随后更改同一文件中的其他内容并再次保存,则手表未运行。gulp watch进程仍在运行,但没有任何反应。 -
如果您仍然想使用
gulp-batch,正确的用法是在那里有一个done回调:done- 是您的函数信号批处理的回调,您已经完成了。所以:gulp.task('watch', function () { watch('**/*.js', batch(function (events, done) { gulp.start('build'); done(); })); });
标签: gulp gulp-watch