Эта страница переведена PageTurner AI (бета). Не одобрена официально проектом. Нашли ошибку? Сообщить о проблеме →
Запуск задач
Монополии могут содержать сотни или даже тысячи проектов, поэтому возможность запускать npm-скрипты для всех (или некоторых) из них — ключевая особенность инструментов вроде Lerna.
Определения
-
Команда — всё, что разработчик вводит в терминале (например,
lerna run build --scope=header --concurrency=5). -
Цель — название npm-скрипта (например,
build). -
Задача — вызов npm-скрипта (например,
header:build).
Пример репозитория
Примеры основаны на этом репозитории. Можете клонировать его и экспериментировать.
Запуск всех задач
В каждом проекте определены скрипты test и build.
Запустите:
npx lerna run build
Проекты соберутся в правильном порядке: сначала footer и header, затем remixapp.
✔ header:build (501ms)
✔ footer:build (503ms)
✔ remixapp:build (670ms)
—————————————————————————————————————————————————————————————————————————————
Lerna (powered by Nx) Successfully ran target build for 3 projects (1s)
Обратите внимание: Lerna не анализирует содержимое скриптов. Название build не имеет особого значения — это просто имя npm-скрипта.
Параллельный запуск нескольких задач
Вы можете передать список целей через запятую для параллельного запуска.
npx lerna run test,build,lint
Если между задачами есть зависимости (например, build должен выполняться перед test для определённых пакетов), планировщик задач автоматически учтёт это при правильной настройке конфигурации пайплайна задач.
Запуск задачи для одного пакета
При разработке редко требуется запускать все сборки или тесты. Обычно задачи выполняются только для изменяемых проектов. Например, тесты для header можно запустить так:
npx lerna run test --scope=header
Запуск задач, затронутых PR
Команду также можно выполнить для всех проектов, затронутых вашим PR:
npx lerna run test --since=origin/main
Подробнее в документации команд.
Управление выполнением задач
Для точного контроля порядка выполнения задач редактируйте конфигурацию пайплайна задач.
Чтобы ускорить выполнение задач, изучите разделы про кэширование результатов и распределённое выполнение.
Автоматическая загрузка .env-файлов
Планировщик задач на базе Nx по умолчанию автоматически загружает .env-файлы. Вы можете установить --load-env-files в false, если хотите отключить это поведение по любой причине.
Подробнее о загружаемых по умолчанию .env-файлах: https://nx.dev/recipes/environment-variables/define-environment-variables