将 gulp 序列与 gulp 管道工一起使用

Using gulp-sequence with gulp plumber

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

例如(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 序列 运行 设置序列时,需要 return 以便序列知道任务何时完成。否则序列将简单地同时 运行 所有任务。

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

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

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'))
});