javascript - gulp.watch() 未运行关联任务

标签 javascript windows gulp watch

我的 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”未显示。如果我直接运行测试监视任务,则会创建该文件。

这是我直接运行测试监视任务的输出:

[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 任务。

最佳答案

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

我本地的 gulp 版本是 3.4。

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

关于javascript - gulp.watch() 未运行关联任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27933900/

相关文章:

c++ - fopen filename 运行环境

java - 如何制作自定义 Windows 服务?

node.js - 尝试让 Gitlab CI 运行 NPM 和 Gulp 时出错

node.js - 本地安装Gulp失败

javascript - 指令 : $observe, 类属性更改仅捕获一次

javascript - 将鼠标悬停在图像上以显示由 alt 标签链接的更大的隐藏图像?

windows - 如何创建将安装多个应用程序的打包安装程序(类似于 XAMPP)?

javascript - 在 MomentJS 中确定午夜后的营业时间

javascript - 从页面列表中查找单词

angular - 如何在 Angular 2 中设置反向代理