フィルタリング
フィルタリングを使用すると、コマンドをの特定の一部のパッケージに制限できます。
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
--filter ./<glob>, --filter {<glob>}
プロジェクトに一致する、現在の作業ディレクトリからの相対的なグロブパターンです。
pnpm --filter "./packages/**" <cmd>
指定したディレクトリの下にあるすべてのプロジェクトを含めます。
これは、三点リーダーおよびキャレット演算子とともに使用して、依存 / 被依存関係を指定することができます。
pnpm --filter ...{<directory>} <cmd>
pnpm --filter {<directory>}... <cmd>
pnpm --filter ...{<directory>}... <cmd>
また、 [<since>]
と組み合わせて使用することもできます。 たとえば、ディレクトリ内の変更のあったプロジェクトのみをすべて選択するには、次のようにします。
pnpm --filter "{packages/**}[origin/master]" <cmd>
pnpm --filter "...{packages/**}[origin/master]" <cmd>
pnpm --filter "{packages/**}[origin/master]..." <cmd>
pnpm --filter "...{packages/**}[origin/master]..." <cmd>
また、指定されたパターンに一致する名前を持つディレクトリからすべてのパッケージを選択することもできます。
pnpm --filter "@babel/*{components/**}" <cmd>
pnpm --filter "@babel/*{components/**}[origin/master]" <cmd>
pnpm --filter "...@babel/*{components/**}[origin/master]" <cmd>