无需吞咽的任务在无效样式上以零退出



首先,这里是一个repo,我的问题有一个非常简单的例子:https://github.com/nkoder/example-of-gulp-less-zero-exit-on-error

我想定义gulp-build管道,它在任何错误时都会失败。这个管道将用于自动化过程(例如,持续集成),因此我需要build命令在失败时返回非零退出代码。它适用于无效的Jade模板或不通过Karma运行的测试。

问题是当我使用gulp-less从LESS准备CSS时。每当我在执行gulp-less之后添加任何管道步骤时,所有错误都会被"消耗掉",整个任务将以0退出。但不应该。

  • 第一个问题是:如何在退出代码为非零的情况下强制wrong任务失败(已解决,请参阅下面的答案)
  • 第二个问题是:为什么less()调用中发出的error事件后面跟着管道流,而不是使整个任务返回非零退出代码在其他类似情况下,例如Jade或ESLint失败时,返回非零。(尚未解决)

版本:

  • 节点5.11.0
  • npm 3.8.6
  • 吞咽3.9.1
  • 不吞咽3.1.0

监听error事件,然后显式退出进程:

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'));
});

相关内容

  • 没有找到相关文章

最新更新