如果第一个任务失败,则后续 gulp 个任务失败

Fail subsequent gulp tasks if first task fails

我的 gulpfile.js 中有默认任务,看起来像这样:

gulp.task('default', [
    'jshint',
    ...
]);

我想做的是在任务 jshint returns 警告时不执行其余任务。换句话说,"fail fast."

这可能吗?在我看来 default 下的任务是 运行 异步的,乱序的——不是串行的。

你需要做两件事:

  • fail 报告器与 jshint 一起使用,使其抛出错误而不是警告。
  • 使您的其他任务依赖于 jshint 任务,以便 jshint 始终先运行。
gulp.task('default', ['js']);

gulp.task('jshint', function() {
  return gulp.src('*.js')
    .pipe(jshint(opts))
    .pipe(jshint.reporter('default'))
    .pipe(jshint.reporter('fail'));
});

gulp.task('js', ['jshint'], function() {
  //somethin
});