2017-03-07 85 views
0

我已經完成了以下由Gulp運行的任務。Gulp任務順序 - 串行和並行

  1. script-a
  2. script-b
  3. script-c

script-a無關(相對而言)至任務bc,和大約需要5秒的運行。

script-bscript-c是相關的,所以必須連續運行,並花費大約一秒運行。

因此,我希望能夠爲平行bc運行a - 同時保持串行後兩者。

我目前使用runSequence將它們串聯起來;

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

我可以script-a爲平行的,像這樣的其他任務一個運行;

gulp.task('script', function(callback) { 
    return runSequence(
    ['script-a', 'script-b'], 
    'script-c', 
    callback 
) 
}); 

但是,這似乎只是解決問題的一半。似乎答案應該是顯而易見的?

回答

0

您可以嘗試將script-b和script-c分組到另一個任務中,然後在任務script中並行運行。事情是這樣的:

// script-b and script-c run in serial 
gulp.task('scriptsBC', function(callback){ 
    return runSequence(
    'script-b', 
    'script-c', 
    callback 
) 
}) 

// script-a and scriptBC run in paralell 
gulp.task('script', function(callback) { 
    return runSequence(
    ['script-a','scriptsBC'], 
    callback 
) 
}); 
+0

這似乎有點小題大做創建_another_任務,實現我後,但你可能是正確的,它可能是做到這一點的唯一途徑。這是一個恥辱! – Tom

+0

是的。看起來不是更好的解決方案,但有效。 –

+0

您可以探索Gulp的第4版,該版本已在其API中調用了[gulp.serial和gulp.paralell](https://fettblog.eu/gulp-4-parallel-and-series/)中的兩種方法。但是,Gulp 4還沒有完成,它[只是一個在吞噬庫中的樹](https://github.com/gulpjs/gulp/tree/4.0) –