Gulp 管道工打破 Sass 管道

Gulp Plumber Breaking Sass Pipe

我不知道为什么我的 Sass 任务在我使用 gulp-水管工时中断。我的 Sass 任务如下所示:

gulp.task('sass', function() {
  return gulp.src(['./src/scss/*.scss', './src/scss/**/*.scss'])
    .pipe(plumber())
    .pipe(sass({
      includePaths : [
        './lib/basscss/scss',
        './lib/fluidbox/css'
      ],
      outputStyle: 'expanded'
    }))
    .pipe(prefix({
      browsers: ['last 2 versions'],
      cascade: false
    }))
    .pipe(minifyCSS())
    .pipe(gulp.dest('./_site/public/css'))
    .pipe(gzip())
    .pipe(gulp.dest('./_site/public/css'))
    .pipe(reload({stream: true}))
});

当我故意在我的 Sass 个文件中出错时,我得到了这个错误:

Error in plugin 'gulp-sass'
Message:
    src/scss/components/_cover.scss
  30:3  property "background-i" must be followed by a ':'
Details:
    column: 3
    line: 30
    file: /Volumes/Boba/Work/Sites/realph/src/scss/components/_cover.scss
    status: 1
    messageFormatted: src/scss/components/_cover.scss
  30:3  property "background-i" must be followed by a ':'

就是这样 – 它打破了任务。我必须中止 gulp 任务并从顶部重新 运行 它。

知道为什么会这样吗?任何帮助表示赞赏。提前致谢!

那是因为你运行的任务还没有结束。您需要使用 handleError 选项告诉管道工在发生错误时结束任务。这是我的管道工配置:

.pipe(plumber({
  errorHandler: function(err) {
    // display the error message
    console.log(err);
    // end the errored task
    this.emit('end') }
}))

希望对您有所帮助