我有以下gulp任务:
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 task not finishing”等只会产生很多结果,讨论从未完成的任务。
我正在运行最新版本的gulp,gulp-jade和gulp-data(3.8.11,1.0.0和1.2.0)。
如果我将管道移除到数据,一切正常。我已经尝试修改对数据的调用,甚至需要像gulp-data示例中那样有效的json文件,但它仍然不起作用。
为什么gulp退出而没有完成任务,似乎没有任何错误?
答案 0 :(得分:6)
问题是,您的.jade
文件中存在导致gulp-jade
引发错误的错误。理想情况下,gulp-jade
会抛出更友好的gulp错误,为您提供的信息不仅仅是空白屏幕,但是,由于它不是,您需要自己处理此错误。您可以使用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的更多详细信息。