2015-02-24 107 views
5

我有以下一飲而盡任務:爲什麼沒有完成我的任務而退出?

var jade = require('gulp-jade'); 
var data = require('gulp-data'); 

gulp.task('jade', function(done) { 
    return gulp.src(paths.jade) 
    .pipe(data(function(){})) 
    .pipe(jade()) 
    .pipe(gulp.dest('./www/templated/')); 
}); 

正試圖編譯這個玉文件:

#{something.anything} 

但是當我嘗試運行任務,玉任務退出沒有完成:

$ gulp jade 
[14:39:24] Using gulpfile ~/path/gulpfile.js 
[14:39:24] Starting 'jade'... 

$ 

並沒有生成輸出文件。

我很明顯錯過了這裏明顯的東西,但我不知道是什麼。搜索「吞吐不完的任務」等只會產生很多討論未完成任務的結果。

我正在運行最新版本的gulp,gulp-jade和gulp-data(3.8.11,1.0.0和1.2.0)。

如果我刪除管道數據,一切正常。我試圖修改對數據的調用,甚至需要在gulp-data示例中使用有效的json文件,但它仍然不起作用。

爲什麼沒有任務完成,沒有,似乎沒有任何錯誤,gulp退出?

回答

6

問題是,您的.jade文件中有一個錯誤,導致gulp-jade發生錯誤。理想情況下,gulp-jade會拋出一個友好的吞嚥錯誤,給你更多的信息,而不僅僅是一個空白的屏幕,但是,因爲它不是,你需要自己處理這個錯誤。您可以使用gulp-plumber或處理錯誤,直接手動出來的特定管道,像這樣:

var gutil = require('gulp-util'); 

gulp.task('jade', function() { 
    return gulp.src(paths.jade) 
    .pipe(jade()) 
    .on('error', gutil.log) 
    .pipe(gulp.dest('./www/templated/')); 
}); 

如果你有興趣,這裏有關於這個error management problem in gulp一些更多的細節。

+0

評論[移到討論區](http://chat.stackoverflow.com/rooms/71619/discussion-between-code-bling-and-chris-montgomery) – 2015-02-24 21:36:14

+0

tl; dr - 始終處理您的錯誤 – Sgnl 2017-01-27 19:50:50

相關問題