2017-09-25 38 views
0

我需要建立的咕嘟咕嘟的任務,像這樣的順序:幾個咕嘟咕嘟任務等待另一個

任務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次,或者也可以多次觸發?

謝謝。

回答

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似乎永遠不會完全釋放,請將其作爲您的意願。請注意,這種解決方案是一種破解,並可能會停止使用未來的吞嚥更新。

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'); 
}) 
+0

這不是我所需要的。在你的例子中,Task2A/B/C將會一個接一個地運行。 –