【问题标题】:Using gulp-sequence with gulp plumber将 gulp-sequence 与 gulp 管道工一起使用
【发布时间】:2016-02-07 14:28:05
【问题描述】:

我遇到了一个关于使用 gulp-sequence 和 gulp-plumber 的奇怪问题。为了让 gulp-plumber 在遇到错误时阻止“gulp watch”任务中断,gulp 任务需要从任务的开头删除“return”。

例如(返回需要在大写字母中删除)

gulp.task('sass:dev', function() {   
    RETURN gulp.src(assets_sass)
        .pipe(plugins.plumber({
            handleError: function (err) {
                console.log(err);
                this.emit('end');
            }
        }))
        .pipe(plugins.sass())
        .pipe(gulp.dest(dist_css));
});

当使用 gulp-sequence 运行序列时,需要 return 以便序列知道任务何时完成。否则,序列将简单地同时运行所有任务。

我可以为 watch 和 build 做两个单独的任务,但这似乎是一个糟糕的解决方案。

有人有解决这个问题的想法吗?

【问题讨论】:

    标签: error-handling return gulp sequence


    【解决方案1】:

    可以使用两个选项调用 Plumber,其中之一是 'errorHandler' - ref。我正在返回流以按顺序运行此任务并且它工作正常。

    gulp.task('sass', function() {
      return gulp.src('public/css/*.scss')
        .pipe(plumber({
          errorHandler: function(err) {
            console.log(err);
            this.emit('end');
          }
        }))
        .pipe(sass())
        .pipe(gulp.dest('dist/css'))
        .pipe(rename({
          suffix: '.min'
        }))
        .pipe(minifycss())
        .pipe(gulp.dest('dist/css'))
    });
    

    【讨论】:

    • 哇,把“handleError”改成“errorHandler”解决了这个问题。我猜不同之处在于 errorHandler 允许任务继续运行,因此不会破坏监视任务。谢谢!
    猜你喜欢
    • 1970-01-01
    • 2016-12-17
    • 1970-01-01
    • 2015-10-16
    • 1970-01-01
    • 2015-08-26
    • 2015-03-02
    • 2016-08-29
    • 1970-01-01
    相关资源
    最近更新 更多