Gulp 在sass任务中使用大口水管工

Gulp 在sass任务中使用大口水管工,gulp,Gulp,每当.scss文件中出现错误时,我的gulp任务就会停止,我必须再次在终端中运行gulp。我正在尝试使用“大口水管工”来解决这个问题,但无法确定在任务中放置它的位置 我要求这样,在我的gulpfile顶部: var gulp = require('gulp'), sass = require('gulp-sass'), plumber = require('gulp-plumber'), ... 我正试图将其导入到任务中,如下所示: gulp.task('pre-process', funct

每当.scss文件中出现错误时,我的gulp任务就会停止,我必须再次在终端中运行gulp。我正在尝试使用“大口水管工”来解决这个问题,但无法确定在任务中放置它的位置

我要求这样,在我的gulpfile顶部:

var gulp = require('gulp'),
sass = require('gulp-sass'),
plumber = require('gulp-plumber'),
...
我正试图将其导入到任务中,如下所示:

gulp.task('pre-process', function(){
  gulp.src('./sass/mnml.scss')
      .pipe(plumber())
      .pipe(watch(function(files) {

        return files.pipe(sass())
          .pipe(prefix())
          .pipe(size({gzip: false, showFiles: true}))
          .pipe(size({gzip: true, showFiles: true}))
          .pipe(gulp.dest('css'))
          .pipe(minifyCSS())
          .pipe(rename('mnml.min.css'))
          .pipe(size({gzip: false, showFiles: true}))
          .pipe(size({gzip: true, showFiles: true}))
          .pipe(gulp.dest('./css/'))
          .pipe(browserSync.reload({stream:true}));
      }));
});
但当我运行gulp时,我会出现以下错误:

stream.js:94
  throw er; // Unhandled stream error in pipe.
        ^
Error: /Users/realph/Dropbox/temp/mnml/sass/base:4: error: unbound variable $b-color

知道我做错了什么吗?感谢您的帮助。提前谢谢

您正在watch回调中创建另一个文件流,我认为它没有使用top plumber插件

为此,您必须更改回调以使用它,如下所示:

 return files
   .pipe(plumber())
   .pipe(sass())
   .pipe(prefix())
   .pipe(size({gzip: false, showFiles: true}))
   .pipe(size({gzip: true, showFiles: true}))
   .pipe(gulp.dest('css'))
   .pipe(minifyCSS())
   .pipe(rename('mnml.min.css'))
   .pipe(size({gzip: false, showFiles: true}))
   .pipe(size({gzip: true, showFiles: true}))
   .pipe(gulp.dest('./css/'))
   .pipe(browserSync.reload({stream:true}));
您还可以为sass管道指定errLogToConsole

.pipe(sass({ errLogToConsole: true }))