我目前有3个观察任务:
gulp.task('watch', function(){
gulp.watch(sassDir + '/*.scss', ['sass']);
gulp.watch(cssDir + '/*.css', ['css']);
gulp.watch(jsDir + '/*.js', ['js']);
})
我现在的问题是,当Sass抛出错误时,所有观看任务都会停止。
然后我添加了.pipe(sass({errLogToConsole: true}))
- 这似乎使我的sass监视任务保持活动,即使出现错误,但是其他两个监视任务似乎没有运行。
如何保持我的所有监视任务的实时性,以便我的sass文件中的错误不会阻止编译所有内容?
我的设置:
gulp.task('sass', function () {
gulp.src(sassDir + '/**/*.scss')
.pipe(sass({errLogToConsole: true}))
.pipe(gulp.dest(sassTargetDir));
});
gulp.task('css', function() {
gulp.src(cssDir + '/**/*.css')
.pipe(autoprefix({
browsers: ['last 40 versions'],
cascade: false
}))
.pipe(gulp.dest(cssTargetDir))
.pipe(minify())
.pipe(rename({suffix: '.min'}))
.pipe(gulp.dest(cssTargetDir));
});
gulp.task('js', function() {
gulp.src(jsDir + '/**/*.js')
.pipe(gulp.dest(jsTargetDir))
.pipe(uglify())
.pipe(rename({suffix: '.min'}))
.pipe(gulp.dest(jsTargetDir))
});
gulp.task('watch', function(){
gulp.watch(sassDir + '/*.scss', ['sass']);
gulp.watch(cssDir + '/*.css', ['css']);
gulp.watch(jsDir + '/*.js', ['js']);
})
gulp.task('default', ['sass','css','js','watch']);
答案 0 :(得分:4)
.pipe(sass({errLogToConsole: true}))
。
.pipe(sass().on('error', sass.logError))
我在watch命令中使用它,错误不会阻止Gulp。
我从Gulp示例代码和一些更新的Gulp指南中得到了这个。将来在这里查看。 https://github.com/dlmanning/gulp-sass