npm / yarn / pnpm コマンド違い早見表

pnpm をメインで利用するようになってから、パッケージ操作コマンドで npm との違いをググることが増えました。npm, yarn, pnpm のコマンドを早見表としてまとめます。

npm / yarn / pnpm のコマンド違いを比較

最近、業務とプライベートの両方で pnpm をメインで使うようになりました。 コマンド違い (特に npm) をド忘れしちゃうこともあり、都度ググっていましたが、 自分でまとめてしまえ!ということで、よく使うコマンドの早見表をまとめます。

npm / yarn / pnpm の違い

マネージャ特徴
npmNode.js 標準のパッケージマネージャ。v9 以降は package-lock.json の仕様が最適化され、速度も改善されている。
yarnnpm より高速なインストールと、より厳密な依存関係の管理が特徴。新しい Yarn では plug'n'play (PnP) モードも利用可能。
pnpmモジュールをグローバルに保存し、ハードリンクで共有することでディスク容量を節約。特にモノレポ環境でのパフォーマンスが優れている。

目的別 npm / yarn / pnpm コマンド早見表

操作npmyarnpnpm
パッケージをインストールnpm install packageyarn add packagepnpm add package
開発用パッケージをインストールnpm install package --save-devyarn add package --devpnpm add package --save-dev
グローバルにインストールnpm install -g packageyarn global add packagepnpm add -g package
全パッケージをインストールnpm installyarn installpnpm install
コマンドを実行(例: eslintnpx eslint .yarn dlx eslint .pnpm dlx eslint .
ローカルパッケージを実行npm run scriptyarn scriptpnpm run script
パッケージを削除npm uninstall packageyarn remove packagepnpm remove package
すべての依存関係を更新npm updateyarn upgradepnpm update
package.json のバージョンを更新npm version patchyarn version --patchpnpm version patch
package.json を作成npm inityarn initpnpm init
package.json を対話形式で作成npm init -yyarn init -ypnpm init
キャッシュをクリアnpm cache clean --forceyarn cache cleanpnpm store prune
開発用パッケージについて

個人的には --save-dev の代わりに -D を使う派です。 npm では -D が使えないので注意。


補足: コマンドの違いと注意点

キャッシュ管理

  • npm cache cleanyarn cache clean はキャッシュを削除するだけですが、 pnpm store prune不要になったパッケージをストレージから削除 します。
  • pnpmnode_modules に依存せずグローバルストアを活用するため、キャッシュ管理が異なります。

パッケージ実行

  • npxnpm@5+ に組み込まれたツールで、一時的にパッケージを実行できます。
  • pnpm dlxnpxpnpm 版で、同じく インストールせずにパッケージを実行 できます。
  • yarnyarn dlx を使用し、似た動作をします。