【问题标题】:Why does gulp quit without finishing my task?为什么 gulp 没有完成我的任务就退出了?
【发布时间】:2015-04-26 15:48:55
【问题描述】:

我有以下 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/'));
});

这是试图编译这个jade文件:

#{something.anything}

但是当我尝试运行任务时,jade任务没有完成就退出了:

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

$

并且没有生成输出文件。

我显然在这里遗漏了一些明显的东西,但我不知道是什么。搜索“gulp task notfining”之类的结果只会产生很多讨论永远不会完成的任务的结果。

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

如果我删除数据管道,一切正常。我已经尝试修改对数据的调用,甚至需要像 gulp-data 示例中那样的有效 json 文件,但它仍然无法正常工作。

为什么 gulp 没有完成任务就退出并且似乎没有任何错误?

【问题讨论】:

    标签: pug gulp


    【解决方案1】:

    问题是,您的.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的细节。

    【讨论】:

    猜你喜欢
    • 2021-04-03
    • 2019-02-06
    • 1970-01-01
    • 1970-01-01
    • 2020-05-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多