如何根据条件运行一些gulp任务

时间:2015-10-05 01:58:41

标签: gulp

假设我在gulpfile中有这个:

gulp.task('foo', ...);

gulp.task('bar', function () {
  if (something) {
    // how do I run task 'foo' here?
  }
});

2 个答案:

答案 0 :(得分:2)

Gulp v3

使用已弃用但still working gulp.run

gulp.task('foo', ...)    

gulp.task('bar', function () {
  if (something) {
    gulp.run('foo')
  }
})

或者,使用任何使用任务名称作为参数的插件,例如run-sequence(无论如何,您可能需要以严格的顺序运行任务)。我通过这种方式有条件地调用我的任务(Gulp v3):

gulp.task('bar', (callback) => {
  if (something) {
    runSequence('foo', callback)
  } else {
    runSequence('foo', 'anotherTask', callback)
  }
})

Gulp v4

您的gulpfile,即gulpfile.babel.js for now,会将Gulp任务设置为导出函数,因此您可以直接调用它们:

export function foo () {
  ...
}

export function bar () {
  if (something) {
    foo()
  }
}

答案 1 :(得分:0)

你可以让'bar'成为'foo'的依赖,并把条件放在'foo'中:

gulp.task('foo', function(){
  if(something){...}
}, 'bar');

gulp.task('bar', function(){});

这种方式总是会在foo之前运行,而foo可以选择是否需要运行自己的逻辑。