吞噬咖啡手表从不完成错误

我有一个看起来像这样的任务:

gulp.task 'scripts', () -> gulp.src(path.scripts) .pipe(coffee({bare: true}).on 'error', gutil.log) .pipe(concat 'app.min.js') .pipe(size()) .pipe(gulp.dest 'public/js') 

我的手表是这样的:

 gulp.task 'watch', () -> gulp.watch path.scripts, ['scripts'] 

只要我不试图编译任何错误,手表工作得很好。 如果我有一个错误,但在我看来,手表仍然在运行,但毫无价值地等待着某件事。

如果没有错误,我得到这样的东西:

 [18:02:47] Starting 'scripts'... [18:02:47] all files 1.05 kB [18:02:47] Finished 'scripts' after 17 ms 

但如果是一个错误,我只是吞下去:

 [18:03:33] Starting 'scripts'... 

它永远不会结束,即使控制台认为它正在运行,手表也不再工作。 build议?

为了能够在错误后继续执行,你需要发出'结束'事件。 尝试这个:

 gulp.task 'scripts', () -> gulp.src(path.scripts) .pipe( coffee({bare: true}) .on 'error', (err) -> gutil.log err @emit 'end' ) .pipe(concat 'app.min.js') .pipe(size()) .pipe(gulp.dest 'public/js') 
Interesting Posts