Фільтрування
Фільтрування дозволяє обмежити команди певними підмножинами пакетів.
pnpm supports a rich selector syntax for picking packages by name or by relation.
Selectors may be specified via the --filter
(or -F
) flag:
pnpm --filter <package_selector> <command>
Зіставлення
--filter <package_name>
Щоб обрати конкретний пакунок, просто вкажіть його назву (@scope/pkg
) або скористайтеся шаблоном для вибору набору пакунків (@scope/*
).
Examples:
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>...
. For instance, the next command will run tests of foo
and all of its dependencies:
pnpm --filter foo... test
You may use a pattern to select a set of root packages:
pnpm --filter "@babel/preset-*..." test
--filter <package_name>^...
To ONLY select the dependencies of a package (both direct and non-direct), suffix the name with the aforementioned ellipsis preceded by a chevron. For instance, the next command will run tests for all of foo
's dependencies:
pnpm --filter "foo^..." test
--filter ...<package_name>
To select a package and its dependent packages (direct and non-direct), prefix the package name with an ellipsis: ...<package_name>
. For instance, this will run the tests of foo
and all packages dependent on it:
pnpm --filter ...foo test
--filter "...^<package_name>"
To ONLY select a package's dependents (both direct and non-direct), prefix the package name with an ellipsis followed by a chevron. For instance, this will run tests for all packages dependent on foo
:
pnpm --filter "...^foo" test