フィルタリング
フィルタリングを使用すると、コマンドをの特定の一部のパッケージに制限できます。
pnpm はパッケージを名前またはリレーションで選択するための豊富なセレクタ構文をサポートしています。
セレクターは --filter
(または -F
) フラグで指定できます:
pnpm --filter <package_selector> <command>
Matching
--filter <package_name>
完全に一致するパッケージを選択するには、その名前 (@scope/pkg
) を指定してください。 もしくは、パターンを使用してパッケージすべてを選択できます (@scope/*
) 。
例:
pnpm --filter "@babel/core" test
pnpm --filter "@babel/*" test
pnpm --filter "*core" test
パッケージのスコープを指定するのは任意なので、 --filter=core
で 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
自身を除いたすべての foo
依存関係についてテストを実 行します。
pnpm --filter "foo^..." test
--filter ...<package_name>
パッケージとその (直接および間接の) 依存を選択するには、パッケージ名の前に三点リーダーを付与します。 ...<package_name>
。 例えば次のコマンドは、 foo
とそれに依存するすべてのパッケージのテストを実行します。
pnpm --filter ...foo test
--filter "...^<package_name>"
パッケージの (直接および間接の) 依存のみを選択するには、パッケージ名の前に三点リーダーとそれに続くキャレットを付けます。 例えば次のコマンドは、 foo
自身を除いたすべての foo
に依存するパッケージのテストを実行します。
pnpm --filter "...^foo" test