Node.js 无吞咽任务退出,无效样式为零
首先,这是一份回购协议,其中有一个非常简单的例子说明了我的问题: 我想定义任何错误都会失败的gulpbuildpipeline。这个管道将用于自动化过程(例如持续集成),因此我需要build命令在失败时返回非零退出代码。它对我来说适用于无效的Jade模板或使用Karma运行的未通过测试 问题是当我使用Node.js 无吞咽任务退出,无效样式为零,node.js,gulp,gulp-less,Node.js,Gulp,Gulp Less,首先,这是一份回购协议,其中有一个非常简单的例子说明了我的问题: 我想定义任何错误都会失败的gulpbuildpipeline。这个管道将用于自动化过程(例如持续集成),因此我需要build命令在失败时返回非零退出代码。它对我来说适用于无效的Jade模板或使用Karma运行的未通过测试 问题是当我使用gulpless从更少的资源准备CSS时。每当我在执行gulpless之后添加任何管道步骤时,所有错误都会被“消耗”,整个任务将以0退出。但它不应该 第一个问题是:如何使用非零退出代码强制错误的任
gulpless
从更少的资源准备CSS时。每当我在执行gulpless
之后添加任何管道步骤时,所有错误都会被“消耗”,整个任务将以0退出。但它不应该
- 第一个问题是:如何使用非零退出代码强制
(已解决,请参阅下面的答案)错误的
任务失败?
- 第二个问题是:为什么在管道流后面的
调用中发出的less()
事件没有使整个任务返回非零退出代码?在其他一些类似情况下,例如在Jade或ESLint故障中,会返回非零。(尚未解决)error
- 节点5.11.0
- npm 3.8.6
- 吞咽3.9.1
- 大口喝3.1.0
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'));
});
谢谢你的解决方案!我不太喜欢显式调用
process.exit(…)
,但如果这是让less()
正确失败的唯一方法,那么就OK。