2015-12-15 151 views
0

我有一個吞嚥任務需要連續執行其他兩個任務並按順序執行。Gulp中的任務依賴

所以,當我運行buildbuild運行第一task-a,當task-a完成 task-b執行。

目前我正在使用這個腳本,我想確認是否正確。

gulp.task('build', [ 
     'task-a', 
     'task-b' 
    ]); 
+2

是啊,它會運行'任務了'那麼一旦這項步驟完成後,它會運行'任務B' – PourMeSomeCode

+1

沒有,它將會運行'任務 - a'和'task-b'並行 - 除非'task-b'在內部將'task-a'定義爲dep。 – MarcoL

回答

1

截至官方文檔與格式規定的任務will run in parallel (all at once), so don't assume that the tasks will start/finish in order.

你必須明確地界定任務如下使咕嘟咕嘟鍛鍊的正確順序的順序:

gulp.task('task-a', function(){ ... }); 

gulp.task('task-b', ['task-a'], function(){ ... }); 

gulp.task('build', ['task-a', 'task-b'], function(){ ... }); 

此時當您將嘗試運行build Gulp將構建執行前完成task-b依賴於task-a的任務和鍛鍊的依賴關係樹。

一個更完整的例子可以在這裏找到:https://github.com/gulpjs/gulp/blob/master/docs/recipes/running-tasks-in-series.md

+0

感謝您的解釋和例子,它解決了我的問題 – GibboK

0

你有瞬間的電流一飲而盡任務能否正確運行,它會運行task-a然後運行task-b。無論出於何種原因,它不會讓你回到你想要的東西。還有一個叫做run-sequencehttps://www.npmjs.com/package/run-sequence)的npm包可以使用。

你一飲而盡的任務看起來是這樣的:

gulp.task('runTasks', function() { 
    runSequence('task-a', 'task-b', 'task-c'); 
}); 

這會傳遞給它的順序中執行任務。

+0

'你目前的一口氣任務將正確運行,它將運行任務 - 然後運行任務b.'請更正此問題。 – MarcoL