我的gulpfile.js中有以下代码:
gulp.task('test-watch', function () {
console.log('running test-watch...');
return gulp.src('./views/layout.tmpl')
.pipe(rename('layout.html'))
.pipe(gulp.dest('./views/'));
});
gulp.task('watch', function () {
var watcher = gulp.watch('./views/layout.tmpl', ['test-watch']);
watcher.on('change', function (event) {
console.log('File ' + event.path + ' was ' + event.type + ', running tasks...');
});
});
它会产生以下输出(在编辑/保存" layout.tmpl&#34之后出现最后一行):
[15:53:12] Using gulpfile C:\project1\gulpfile.js
[15:53:12] Starting 'watch'...
[15:53:12] Finished 'watch' after 6.72 ms
File C:\project1\views\layout.tmpl was changed, running tasks...
文件" layout.html" (它应该是" layout.tmpl"的副本)不会被创建。注意,在上面输出的同时" console.log"在" watcher.on"调用显示在输出中," console.log"在"测试手表"任务未显示。如果我直接运行测试监视任务,则会创建该文件。
如果我直接运行测试监视任务,则输出如下:
[15:53:56] Using gulpfile C:\project1\gulpfile.js
[15:53:56] Starting 'test-watch'...
running test-watch...
[15:53:56] Finished 'test-watch' after 12 ms
请注意" console.log"在"测试手表"任务显示。
这是在Windows 7计算机上,从cmd.exe运行gulp任务。
答案 0 :(得分:1)
支持将监视任务传递给gulp.watch API作为数组至少需要gulp版本3.5。 gulp.watch API仅在gulp版本3.5及更高版本中接受一系列任务。
我的本地吞咽是版本3.4。
我更新了gulp到最新的3.8版本,我的监视任务正常工作。