【问题标题】:gulp watch only runs twicegulp watch 只运行两次
【发布时间】:2015-06-20 11:36:03
【问题描述】:

我正在从 grunt 切换到 gulp。这是 grunt 下的工作发现(如果有帮助,请提及)。

使用下面的 gulpfile,我的测试任务 (mocha) 在文件更改时成功运行,但它只运行两次。如果我更改另一个文件,任务将运行,但对同一文件的连续更改不会触发运行。换句话说:

  • 触摸文件A,任务运行
  • 再次触摸文件A,任务运行
  • 再次触摸文件 A,任务不运行
  • 触摸文件B,任务运行
  • 再次触摸文件 B,任务不运行

测试通过,我看到的唯一输出是 gulp 启动/停止(即我没有看到任何会破坏手表的错误)

OSX 10.10.3 / gulp 3.9.0

我的 gulp 文件:

'use strict';

var gulp = require('gulp');
var mocha = require('gulp-mocha');

gulp.task('test', function() {
    gulp.src('test/unit/**/*.js')
        .pipe(mocha());
});

gulp.task('watch', function() {
    gulp.watch('lib/**/*.js', ['test']);
});

【问题讨论】:

    标签: javascript node.js gulp


    【解决方案1】:

    这真的很奇怪,我不知道为什么,但同样的事情发生在我身上,并且在我开始观看测试文件后它就开始工作了。也许它会在你的情况下工作。试试看吧。

    gulp.task('watch', ['test'], function() {
        gulp.watch(['lib/**/*.js', 'test/unit/**/*.js'], ['test']);
    });
    

    【讨论】:

      【解决方案2】:

      想通了。我在一些测试中使用了 sinon.useFakeTimer。从未恢复原始时钟行为。出于某种原因,咕噜声不受此影响。我恢复了时钟,现在一切都很开心

      【讨论】:

        猜你喜欢
        • 2015-05-28
        • 2019-06-01
        • 1970-01-01
        • 1970-01-01
        • 2022-12-24
        • 1970-01-01
        • 1970-01-01
        • 2016-08-25
        相关资源
        最近更新 更多