【问题标题】:gulp.watch() not running associated taskgulp.watch() 没有运行关联的任务
【发布时间】:2015-03-12 02:28:18
【问题描述】:

我的 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”之后):

[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 机器上,从 cmd.exe 运行 gulp 任务。

【问题讨论】:

    标签: javascript windows gulp watch


    【解决方案1】:

    支持将监视任务作为数组传递给 gulp.watch API,至少需要 gulp 3.5 版本。 gulp.watch API 仅在 gulp 3.5 及更高版本中接受一系列任务。

    我的本​​地 gulp 是 3.4 版。

    我将 gulp 更新到最新的 3.8 版本,并且我的 watch 任务正常工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-09-16
      • 1970-01-01
      • 1970-01-01
      • 2015-12-10
      相关资源
      最近更新 更多