Перейти к основному содержимому
Неофициальный Бета-перевод

Эта страница переведена 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.

Terminal Output
    ✔  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