我试图将我的sass转换为css以及其他一些东西。如果出现错误,我在处理sass转换时遇到问题。我可以让它告诉我,但它然后挂起,我必须重新gulp。我错过了这里和那里的类型,我虔诚地ctrl + s所以当我发生崩溃的每一个错字时,它真的很烦人。这就是我所拥有的:
gulp.task('default', function () {
var sassSrc = './src/scss/*.scss',
sassDst = './build/css',
htmlSrc = './src/*.html',
htmlDst = './build';
gulp.src(sassSrc, {unpipeOnError: false})
.pipe(watch(function(files) {
return files.pipe(plumber())
.pipe(sass())
.on("error", notify.onError())
.pipe(prefix("last 3 version", "> 1%", 'safari 5', 'ie 8', 'ie 9', 'opera 12.1', 'ios 6', "Android 4"))
.pipe(minifyCSS())
.pipe(gulp.dest(sassDst))
.pipe(notify({ message: 'Styles task complete' }));
}));
gulp.src(htmlSrc)
.pipe(watch(function(files) {
return files.pipe(minifyHTML())
.pipe(gulp.dest(htmlDst));
}));
});
答案 0 :(得分:2)
尝试使用Node中的EventEmitter类。而不是直接传递notify.onError()
,也会发出end
事件。将相关代码更改为以下块:
.on('error', function() {
notify.onError().apply(this, arguments);
this.emit('end');
})
和gulp-watch
应继续响应更改,即使出现错误也是如此。希望这有帮助!
答案 1 :(得分:1)
Josh Clayton的回答实际上对我没有用,但我发现了一个类似的问题确实解决了我的问题。就在这里:Gulp-sass error with notify