2015-02-24 108 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

相关问题