Фільтрування
Фільтрування дозволяє обмежити команди певними підмножинами пакунків.
pnpm підтримує потужний синтаксис селектора для вибору пакунків за назвою або за звʼязком.
Селектори можна вказати за допомогою прапорця --filter
(або -F
):
pnpm --filter <package_selector> <command>
Зіставлення
--filter <package_name>
Щоб обрати конкретний пакунок, просто вкажіть його назву (@scope/pkg
) або скористайтеся шаблоном для вибору набору пакунків (@scope/*
).
Приклади:
pnpm --filter "@babel/core" test
pnpm --filter "@babel/*" test
pnpm --filter "*core" test
Вказівка області видимості пакунка не є обовʼязковою, тому --filter=core
вибере @babel/core
, якщо core
не буде знайдено. Однак, якщо у робочому просторі є декілька пакунків з однаковими іменами (наприклад, @babel/core
і @types/core
), то фільтрація без області видимості нічого не виявить.
--filter <package_name>...
Щоб вибрати пакунок та його залежності (прямі та непрямі), додайте до назви пакунка трикрапку: <package_name>...
. Наприклад, наступна команда запустить тести для foo
і всіх його залежностей:
pnpm --filter foo... test
Ви можете використати шаблон для вибору набору кореневих пакунків:
pnpm --filter "@babel/preset-*..." test
--filter <package_name>^...
Щоб вибрати ТІЛЬКИ залежності пакунка (як прямі, так і непрямі), додайте до назви пакунка вищезгадану трикрапку, що передує шеврону. Наприклад, наступна команда запустить тести для всіх залежностей foo
:
pnpm --filter "foo^..." test
--filter ...<package_name>
Щоб вибрати пакунок і залежні від нього пакунки (прямі і непрямі), додайте до назви пакунка трикрапку: ...<package_name>
. Наприклад, буде запущено тести foo
і всіх залежних від нього пакунків:
pnpm --filter ...foo test