每当我的.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
知道我做错了什么吗?任何帮助表示赞赏。提前谢谢!
答案 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 }))