利用 gulp-pug 自动编译出错停止监听的解决办法

用 gulp-pug 编译 pug 文件很方便,不过也会出现因 pug 文件中语法出错而编译出错的情况,这时 gulp.watch 就停止了,需要手动重新启动非常的不方便。利用插件 gulp-notify 可以很方便的解决这个问题。

var gulp = require('gulp'),
    pug = require('gulp-pug'),
    notify = require('gulp-notify');

gulp.task('pug', function(){
    return gulp.src('pug/*/*.pug')
        // .pipe(plumber())
        .pipe( pug({ pretty: true }).on('error', notify.onError( (error) => { return `pug went wrong, ${error}`; } )) )
        .pipe(gulp.dest('page'));
});

这样,gulp.watch 进程就不会停止了,还会继续监听 pug 文件的变化。

参考 npmjs.com