Порядок задач Gulp - последовательный и параллельный

У меня есть следующие задачи, которые выполняет Gulp.

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

script-a не имеет отношения (условно говоря) к задачам b а также cи занимает около 5 секунд, чтобы бежать.

script-b а также script-c связаны между собой, поэтому должны быть запущены последовательно, и каждый занимает около секунды для запуска.

Поэтому я хочу иметь возможность бежать a параллельно с b а также c - сохраняя последние два в серийном.

В настоящее время я использую 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
  )
});

Но это, кажется, только половина решения проблемы. Похоже, ответ должен быть очевидным?

1 ответ

Решение

Вы можете попробовать сгруппировать 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
  )
});
Другие вопросы по тегам