2015-09-05 66 views
1

我有一個看起來像這樣的任務:一口咖啡的手錶永遠無法完成的錯誤

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'... 

它永遠不會結束,手錶不再作品即使控制檯認爲它正在運行。建議?

回答

1

爲了能夠在錯誤發生後繼續執行,您需要發出'結束'事件。試試這個:

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') 
+0

This works。謝謝! –