我需要构建一系列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只会执行一次,或者它可以多次触发?
谢谢。
答案 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');
})