2014-11-05 60 views
0

每當我的.scss文件出現錯誤,我的gulp任務就會停止,我必須再次在終端中運行gulp。我正在嘗試使用gulp-plumber來解決這個問題,但無法確定將它放在任務中的位置。在sass任務上使用gulp-plumber

我需要像這樣,在我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 

任何想法我做錯了什麼?任何幫助表示讚賞。提前致謝!

回答

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

您還可以指定errLogToConsole青菜

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