2015-06-20 2 views
0

Я в процессе перехода от ворча к глотку. Это была рабочая находка под хрюканьем (упоминание в случае, если это помогает).gulp watch только работает дважды

С gulpfile ниже моей тестовой задачи (mocha) успешно выполняется, когда файл изменяется, но он работает только дважды. Если я изменю другой файл, задача будет запущена, но последующие изменения в том же файле не вызовут запуск. Другими слова:

  • сенсорного файл А, задача выполняется
  • сенсорного файл А опять же, задача выполняется
  • сенсорного файл А снова, задание не выполняется
  • сенсорного файл B, задание выполняется
  • сенсорный файл B снова, задание не выполняется

тест пройден, и единственный выход я вижу, это глотком старт/стоп (т.е. я не вижу каких-либо ошибок, которые ломаются часы)

OSX 10.10.3/глотком 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']); 
}); 

ответ

0

Обдумал это. Я использовал synon.useFakeTimer в нескольких моих тестах. Никогда не восстанавливалось исходное поведение часов. По какой-то причине это не повлияло на хрюканье. Я восстановил часы, и теперь все доволен

1

Это действительно странно, и я не знаю почему, но то же самое случилось со мной, и он начал работать, как только я тоже начал смотреть тестовые файлы. Возможно, это будет работать в вашем случае. Попробуйте.

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