#
parallel()Объединяет функции задач и/или составные операции в более крупные операции, которые будут выполняться одновременно. Нет никаких ограничений на глубину вложенности составных операций, использующих series()
и parallel()
.
#
Применение#
Подпись#
Параметрыпараметр | тип | примечание |
---|---|---|
tasks (required) | function string | Любое количество функций задачи может быть передано как отдельные аргументы. Строки можно использовать, если вы ранее регистрировали задачи, но это не рекомендуется. |
#
ВозвращаетсяСоставная операция, которая должна быть зарегистрирована как задача или вложена в другие композиции series
и/или parallel
.
При выполнении составной операции все задачи будут выполняться с максимальным параллелизмом. Если ошибка возникает в одной задаче, другие задачи недетерминированно могут завершиться, а могут и не завершиться.
#
ОшибкиЕсли задачи не переданы, выдает ошибку с сообщением: "One or more tasks should be combined using series or parallel".
Когда передаются недопустимые задачи или незарегистрированные задачи, выдает ошибку с сообщением: "Task never defined".
#
Прямые ссылкиПрямая ссылка - это когда вы составляете задачи, используя строковые ссылки, которые еще не были зарегистрированы. Это было обычной практикой в более старых версиях, но эта функция была удалена, чтобы ускорить выполнение задач и способствовать использованию именованных функций.
В более новых версиях вы получите сообщение об ошибке «Задача не определена», если попытаетесь использовать прямые ссылки. Вы можете столкнуться с этим при попытке использовать exports
для регистрации задач и составление задач по строкам. В этом случае используйте именованные функции вместо строковых ссылок.
Во время миграции вам может потребоваться реестр прямых ссылок. Это добавит дополнительное закрытие к каждой ссылке на задачу и значительно замедлит вашу сборку. Не полагайтесь на это исправление надолго.
#
Избегайте дублирования задачКогда выполняется составная операция, каждая задача будет выполняться каждый раз, когда она была предоставлена.
Задача clean
, на которую ссылаются две разные композиции, будет выполняться дважды и приведет к нежелательным результатам. Вместо этого выполните рефакторинг задачи clean
, чтобы она была указана в окончательной композиции.
Если у вас есть такой код:
Переходите на это: