gulp手表只运行两次

时间:2015-06-20 02:38:18

标签: javascript node.js gulp

我正在从咕噜转换为咕噜声。这是在grunt下找工作(如果有帮助,请提及)。

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

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

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

OSX 10.10.3 / gulp 3.9.0

我的gulpfile:

'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']);
});

2 个答案:

答案 0 :(得分:1)

这真的很奇怪,我不知道为什么,但同样的事情发生在我身上,一旦我开始观看测试文件,它就开始工作了。也许它适用于你的情况。试一试。

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

答案 1 :(得分:0)

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