带有errLogToConsole的Gulp Sass:true仍在停止我的其他监视任务

use*_*561 3 gulp gulp-sass gulp-watch

我目前有3个监视任务,如下所示:

gulp.task('watch', function(){
    gulp.watch(sassDir + '/*.scss', ['sass']);
    gulp.watch(cssDir + '/*.css', ['css']);
    gulp.watch(jsDir + '/*.js', ['js']);
})
Run Code Online (Sandbox Code Playgroud)

我现在的问题是,当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']);
Run Code Online (Sandbox Code Playgroud)

Tar*_*rik 5

gur 2.0+不推荐使用errLogToConsole(或不起作用)。尝试使用代替.pipe(sass({errLogToConsole: true}))

.pipe(sass().on('error', sass.logError))
Run Code Online (Sandbox Code Playgroud)

我将其与watch命令一起使用,并且错误不会阻止Gulp。

我是从Gulp示例代码和其他一些最新的Gulp指南中获得的。将来在这里检查。https://github.com/dlmanning/gulp-sass