为什么没有完成我的任务而退出?
问题描述:
我有以下一饮而尽任务:为什么没有完成我的任务而退出?
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退出?
答
问题是,您的.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一些更多的细节。
评论[移到讨论区](http://chat.stackoverflow.com/rooms/71619/discussion-between-code-bling-and-chris-montgomery) – 2015-02-24 21:36:14
tl; dr - 始终处理您的错误 – Sgnl 2017-01-27 19:50:50