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

Эта страница переведена PageTurner AI (бета). Не одобрена официально проектом. Нашли ошибку? Сообщить о проблеме →

Команды

Параметры фильтрации

Командам Lerna можно применять параметры фильтрации для управления пакетами, над которыми они работают.

Опции для подкоманд lerna, требующих фильтрации

Установите lerna для доступа к CLI lerna.

Опции

--scope <glob>

Включать только пакеты, имена которых соответствуют указанному glob-шаблону.

$ lerna exec --scope my-component -- ls -la
$ lerna run --scope "toolbar-*" test
$ lerna run --scope package-1 --scope "*-2" lint

Примечание: Для некоторых glob-шаблонов может потребоваться заключить аргумент в кавычки, чтобы избежать преждевременного раскрытия в shell.

Запуск через npx

При запуске lerna через npx необходимо использовать явный знак "=" при передаче аргументов с glob-шаблонами. Это предотвращает преждевременное раскрытие аргументов в npx.

Например:

$ npx lerna run --scope="toolbar-*" test
$ npx lerna run --scope="package-{1,2,5}" test

--ignore <glob>

Исключать пакеты, имена которых соответствуют указанному glob-шаблону.

$ lerna exec --ignore "package-{1,2,5}"  -- ls -la
$ lerna run --ignore package-1 test
$ lerna run --ignore "package-@(1|2)" --ignore package-3 lint

Дополнительные примеры фильтрации можно найти здесь.

--no-private

Исключать приватные пакеты. По умолчанию они включаются.

--since [ref]

Включать только пакеты, изменённые после указанного ref. Если ссылка не указана, используется последний тег.

# List the contents of packages that have changed since the latest tag
$ lerna exec --since -- ls -la

# Run the tests for all packages that have changed since `main`
$ lerna run test --since main

# List all packages that have changed since `some-branch`
$ lerna ls --since some-branch

Это особенно полезно при использовании в CI-системах, если вы можете определить целевую ветку, в которую будет направлен PR, поскольку её можно указать как ref для опции --since. Такой подход одинаково хорошо работает как для PR в основную ветку, так и для feature-веток.

--exclude-dependents

Исключает все транзитивные зависимости при выполнении команды с --since, переопределяя стандартный алгоритм определения "изменённых" пакетов.

Флаг не имеет эффекта без --since и вызовет ошибку в таком случае.

--include-dependents

Включает все транзитивные зависимости при выполнении команды, независимо от --scope, --ignore или --since.

--include-dependencies

Включает все транзитивные зависимости при выполнении команды, независимо от --scope, --ignore или --since.

Используется с командами, поддерживающими --scope (bootstrap, clean, ls, run, exec).
Гарантирует, что все зависимости (и dev-зависимости) для выбранных пакетов (через --scope или --ignore) также будут обработаны.

Примечание: Это переопределит флаги --scope и --ignore.

Например: Пакет, исключённый через --ignore, всё равно будет загружен, если от него зависит другой загружаемый пакет.

Полезно при настройке отдельных пакетов, которые зависят от других компонентов системы.

$ lerna bootstrap --scope my-component --include-dependencies
# my-component and all of its dependencies will be bootstrapped
$ lerna bootstrap --scope "package-*" --ignore "package-util-*" --include-dependencies
# all packages matching "package-util-*" will be ignored unless they are
# depended upon by a package whose name matches "package-*"

--include-merged-tags

$ lerna exec --since --include-merged-tags -- ls -la

Включает теги из слитых веток при выполнении команды с --since. Актуально только при активной публикации из feature-веток, что не рекомендуется в общем случае.

Ограничения

Хотя Lerna можно запускать без предварительной установки зависимостей (например, через pnpm dlx или npx), это не рекомендуется. Команды могут выполниться, но результаты могут быть неточными. Подробнее в этом issue.