过滤
过滤允许你将命令限制于软件包的特定子集。
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
指定包的范围是可选的,因此如果未找到 core
,--filter=core
将选择 @babel/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