最近使うようになった pnpm 。
ふと「pnpxとnpxって同じだっけ?」と思い、せっかく調べたので記すことにします。
公式は pnpm dlx を推奨
pnpm v7.x から、pnpx コマンドは、pnpm dlx に正式に置き換えられました。これは、npm の命名規則(npm exec や npm dlx の登場)との一貫性を高めるためであり、パッケージを「ダウンロードして実行」するというコマンドの役割がより明確になりました。
💻 コマンドの比較と役割
| コマンド | 関連パッケージマネージャー | 主な目的 | ローカルインストールに対する挙動 |
|---|---|---|---|
npx |
npm | パッケージをインストールせずに実行 | ローカルを優先し、なければ一時的にダウンロードして実行する。 |
pnpm dlx |
pnpm | パッケージを**ダウンロード(dl)して実行(x)**する | ローカルを優先し、なければ一時的にダウンロードして実行する。 |
pnpm exec |
pnpm | ローカルにインストール済みの実行ファイルを確実に実行する | ローカルにのみ存在する実行ファイルを動かす。パッケージのダウンロード機能はない。 |
pnpm の最新バージョンで旧コマンドである pnpx(および互換性のある npx)が動作するのは、以前のユーザーの利便性(互換性)を考慮し、開発チームが意図的に残しているためです。ただし、今後のアップデートでこれらの旧コマンドが完全に廃止される可能性もあります。このため、今のうちに推奨される pnpm dlx コマンドに慣れておこう!