Skip to content

Запуск команд ​

polyrepo exec — запуск произвольной команды в каждом выбранном пакете.

bash
polyrepo exec [options] -- <cmd...>

Показывает чекбокс всех найденных пакетов (все отмечены по умолчанию — «запустить везде» это типичный случай), затем выполняет указанную команду в каждом выбранном пакете, один за другим, с реальным терминалом (вывод, цвета и любые запросы работают как обычно). Репозиторий, который сам является pnpm-воркспейсом, даёт по одной записи чекбокса на каждого участника, а не одну на весь репозиторий, так что команда выполняется внутри папки конкретного пакета. Пакет, завершившийся с ненулевым кодом, отмечается в отчёте, и по умолчанию выполнение продолжается для остальных — --bail останавливает сразу же. В конце печатается сводка по упавшим пакетам, и процесс завершается с ненулевым кодом, если хоть один пакет упал.

Сама команда обязательно должна идти после литерального --, так же как у npm run <script> -- — всё, что до него, разбирается как собственные опции polyrepo.

Опции ​

--packages <a,b,c> ​

Список пакетов вместо интерактивного чекбокса.

--yes ​

Пропустить подтверждение «proceed?».

--bail ​

Остановиться на первом пакете, завершившемся с ненулевым кодом, вместо продолжения по остальным.

Пример:

bash
# прогнать тесты везде
polyrepo exec -- npm test

# конкретные пакеты, без вопросов
polyrepo exec --packages vue-toast-kit,os-detect --yes -- npm outdated

# остановиться на первой же ошибке
polyrepo exec --bail -- npm run lint