在sass任务上使用gulp-plumber

时间:2014-11-05 14:25:40

标签: gulp

每当我的.scss文件出错时,我的gulp任务就会停止,我必须再次在终端中运行gulp。我正在尝试使用gulp-plumber来解决这个问题,但是无法解决将它放在任务中的问题。

我需要这样,在我的gulp文件的顶部:

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

知道我做错了什么吗?任何帮助表示赞赏。提前谢谢!

1 个答案:

答案 0 :(得分:0)

您正在观看回调中创建另一个文件流,我认为它不使用顶级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 }))