Пряжа запускает несколько скриптов параллельно

Я перехожу с NPM на Yarn и хочу запускать сценарии параллельно, например:

npm-run-all --parallel script1 script2 script3

Что его эквивалент в пряжи?

То, что я нашел в качестве его эквивалента, - это запускать каждый отдельно:

yarn run script1 && yarn run script2 && yarn run script3

но я не могу запускать скрипты параллельно.

как использовать несколько скриптов & в параллельный?

Отвечает ли это на ваш вопрос? Как я могу запустить несколько сценариев npm параллельно?

Maneet 12.12.2019 21:54
Настройка шаблона Metronic с помощью Webpack и Gulp
Настройка шаблона Metronic с помощью Webpack и Gulp
Я пишу эту статью, чтобы поделиться тем, как настроить макет Metronic с помощью Sass, поскольку Metronic предоставляет так много документации, и они...
17
1
24 141
4

Ответы 4

Вы можете использовать https://www.npmjs.com/package/yarn-run-all, созданный для этой цели.

Редактировать:

Мой ответ был неправильным.

npm-run-all совместим с пряжей:

If a script is invoked with Yarn, npm-run-all will correctly use Yarn to execute the plan's child scripts.

Кроме того, пакет yarn-run-all связан с репозиторием https://github.com/mysticatea/npm-run-all ...

В конце концов, я не понимаю, почему существует пакет yarn-run-all.

В любом случае, просто используйте пакет npm-run-all вместо yarn-run-all.

Пакет называется yarn-run-all, но readme везде записывает npm, а не yarn ... ?

Massimiliano Kraus 04.12.2019 14:37

вы можете использовать одновременно. Например.:

concurrently "yarn run script1"   "yarn run script2"   "yarn run script3"

Из того, что я прочитал в документации по npm-run-all, вы можете просто продолжать его использовать, и, пока вы запускаете скрипт с yarn, он будет использовать YARN для параллельного запуска скриптов.

Вот оригинальная цитата из https://github.com/mysticatea/npm-run-all

Yarn Compatibility

If a script is invoked with Yarn, npm-run-all will correctly use Yarn to execute the plan's child scripts.

Есть разница между использованием & и &&. При использовании & сценарии будут выполняться параллельно, при использовании && сценарии будут выполняться один за другим.

package.json:

{
    "parallel": "yarn script1 & yarn script2",
    "serial": "yarn script1 && yarn script2",
    "script1": "... some script here",
    "script2": "... some there script here"
}

Это не сработает для новых версий Yarn (я понимаю, что OP не указывает, что они используют). У него есть собственная оболочка, которая из соображений кросс-платформенной совместимости не позволяет использовать &. Это вызовет Syntax Error: Expected "$", "$(", "${", "&&", "'", ";", "<", "<<<", ">", ">>", "\"", "\\", "|", "|&", "||", [ \t], or end of input but "&" found. Чтобы использовать &, необходимо либо использовать библиотеку, созданную для этого (как описано в других ответах), либо явно выполнить команду bash, например "bash -c 'yarn script1 & yarn script2'"

DanCouper 25.11.2020 16:28

Другие вопросы по теме