2017-03-07 56 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) –