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