gulp-less任务退出,无效样式为零

时间:2016-05-06 14:01:06

标签: node.js gulp gulp-less

首先,这是一个非常简单的问题示例的回购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失败。 (尚未解决)

版本:

  • node 5.11.0
  • npm 3.8.6
  • gulp 3.9.1
  • gulp-less 3.1.0

1 个答案:

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