首先,这是一个非常简单的问题示例的回购:https://github.com/nkoder/example-of-gulp-less-zero-exit-on-error
我想定义gulp构建管道,它在任何错误上都会失败。此管道将用于自动化过程(例如,持续集成),因此我需要build命令在失败时返回非零退出代码。它适用于无效的Jade模板或使用Karma运行的非通过测试。
问题在于我使用gulp-less
从LESS准备CSS。每当我在执行gulp-less
之后添加任何管道步骤时,所有错误都被“消耗”,整个任务以0退出。但它不应该。
wrong
任务失败?(已解决,请参阅下面的答案)error
调用后跟随管道流发出less()
事件并不是要完成返回非零退出代码的完整任务?非在一些其他类似情况下返回零,例如。在Jade或ESLint失败。 (尚未解决)版本:
答案 0 :(得分:1)
收听error
event,然后明确退出流程:
gulp.task('wrong', function () {
return gulp
.src('invalid-styles.less')
.pipe(less().on('error', function(error) {
console.log(error.message);
process.exit(1);
}))
.pipe(gulp.dest('generated-styles.css'));
});