几个Gulp任务等待另一个任务

时间:2017-09-25 16:12:52

标签: javascript gulp

我需要构建一系列Gulp任务,如下所示:

任务1 - > Task2A,Task2B,Task2C - > TASK3,

任务2A,2B,2C并行运行(但任务1应该在之前完成,并且只完成一次)。

我尝试了什么:

gulp.task('Task1', []);

gulp.task('Task2A', ['Task1']);

gulp.task('Task2B', ['Task1']);

gulp.task('Task2C', ['Task1']);

gulp.task('Task3', ['Task2A', 'Task2B', 'Task2C']);

看起来它正在工作,但我不确定,它是否保证Task1只会执行一次,或者它可以多次触发?

谢谢。

2 个答案:

答案 0 :(得分:1)

也许最简单的方法(不使用gulp4.0)是run-sequence plugin

对于你的情况:

var runSequence = require('run-sequence');

gulp.task('build', function(callback) {
   runSequence( 'Task1',
               ['Task2A', 'Task2B', 'Task2C'],
                'Task3',
                callback);
});

确保在所有任务中都有退货声明。

  

请注意

     

这是一个临时的解决方案,直到gulp 4.0发布,它应该同样支持定义任务依赖。

     

鉴于Gulp 4似乎永远不会完全释放,请按照你的意愿行事。请注意,此解决方案是一种黑客攻击,并且可能会停止使用未来的更新来进行吞噬。

答案 1 :(得分:0)

试试这个结构

gulp.task('Task1', []);

gulp.task('Task2A', ['Task1']);

gulp.task('Task2B', ['Task2A']);

gulp.task('Task2C', ['Task2B']);

gulp.task('Task3', ['Task2C']);

此外,您可以在另一个任务中运行任务,如下所示:

gulp.task('task1', function(){
  gulp.start('task2');
})
相关问题