用 gulp 自动编译 pug 时,有时 pug 有语法错误就会编译不通过,gulp 的进程就会中断,导致需要重新运行 gulp,这是因为 gulpfile.js 文件中缺少了对错误的处理。
var gulp = require('gulp'),
pug = require('gulp-pug');
var files = {
pug: 'pug/*.pug',
markup: ['pug/*.pug', 'pug/**/*.html'],
styles: 'scss/*.scss',
scripts: 'js/*.js'
}
gulp.task('pug', function(){
return gulp.src(files.pug)
.pipe(pug({
pretty: true
}).on('error', function(e){
console.log('pug went wrong.');
console.log(e.message);
this.end();
}))
.pipe(gulp.dest('.'));
});
在错误的处理中加入 this.end();
gulp 进程就不会终止运行。
或者用到 gulp-plumber 插件。