几个咕嘟咕嘟任务等待另一个
问题描述:
我需要建立的咕嘟咕嘟的任务,像这样的顺序:几个咕嘟咕嘟任务等待另一个
任务1 - > Task2A,Task2B,Task2C - >任务3,
其中任务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']);
看起来像它的工作,但我不知道,它保证任务1将被执行只有1次,或者也可以多次触发?
谢谢。
答
或许要做到这一点(不使用gulp4.0)最简单的方法是run-sequence plugin。
对于您的情况:
var runSequence = require('run-sequence');
gulp.task('build', function(callback) {
runSequence('Task1',
['Task2A', 'Task2B', 'Task2C'],
'Task3',
callback);
});
请确保您有返回所有任务的语句。
请注意
这样做的目的是一个临时解决方案,直到一饮而尽4.0的发布应该有类似的规定任务相关的支持。
鉴于Gulp 4似乎永远不会完全释放,请将其作为您的意愿。请注意,这种解决方案是一种破解,并可能会停止使用未来的吞咽更新。
答
试试这个结构
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');
})
这不是我所需要的。在你的例子中,Task2A/B/C将会一个接一个地运行。 –