2014-11-05 2 views
0

Всякий раз, когда в моем .scss-файле произошла ошибка, моя задача gulp останавливается, и я должен снова запустить gulp в Терминале. Я пытаюсь использовать gulp-сантехник, чтобы исправить это, но не могу решить, где разместить его в задаче.Используйте gulp-plumber on sass task

Я требуя его, как это, в верхней части моего 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 })) 
Смежные вопросы