gulp.watch() 不是 运行 关联的任务
gulp.watch() not running associated task
我的 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...');
});
});
它导致以下输出(最后一行出现在 I edit/save "layout.tmpl" 之后):
[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" 的副本)没有创建。请注意,在上面的输出中,虽然 "watcher.on" 调用中的 "console.log" 显示在输出中,但 "test-watch" 任务中的 "console.log" 未显示。如果我直接 运行 test-watch 任务,文件会被创建。
如果我直接 运行 test-watch 任务,这里是输出:
[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
请注意 "test-watch" 任务中的 "console.log" 已显示。
这是在 Windows 7 机器上,运行宁 gulp 个来自 cmd.exe 的任务。
支持将监视任务作为数组传递给 gulp.watch API 至少需要 gulp 版本 3.5。 gulp.watch API 仅在 gulp 3.5 及更高版本中接受任务数组。
我的本地 gulp 是 3.4 版。
我已将 gulp 更新到最新的 3.8 版本并且我的监视任务正常运行。
我的 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...');
});
});
它导致以下输出(最后一行出现在 I edit/save "layout.tmpl" 之后):
[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" 的副本)没有创建。请注意,在上面的输出中,虽然 "watcher.on" 调用中的 "console.log" 显示在输出中,但 "test-watch" 任务中的 "console.log" 未显示。如果我直接 运行 test-watch 任务,文件会被创建。
如果我直接 运行 test-watch 任务,这里是输出:
[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
请注意 "test-watch" 任务中的 "console.log" 已显示。
这是在 Windows 7 机器上,运行宁 gulp 个来自 cmd.exe 的任务。
支持将监视任务作为数组传递给 gulp.watch API 至少需要 gulp 版本 3.5。 gulp.watch API 仅在 gulp 3.5 及更高版本中接受任务数组。
我的本地 gulp 是 3.4 版。
我已将 gulp 更新到最新的 3.8 版本并且我的监视任务正常运行。