pnpm/npm/yarn比較|パッケージマネージャの選び方

開発ツール

Node.jsのパッケージマネージャはnpm・yarn・pnpmの3択が主流です。それぞれに速度・ディスク効率・モノレポ対応などの強みがあります。本記事では、3つを比較し選び方を解説します。

3つのツールの位置付け

  • npm:Node.js標準、最も普及
  • yarn:Facebook発、現在はBerry(v3+)に進化
  • pnpm:シンボリックリンク方式でディスク効率に優れる

項目別比較

  • インストール速度:pnpm > yarn ≧ npm
  • ディスク効率:pnpmが圧倒的(コンテンツアドレスストア)
  • モノレポ:pnpm workspaces / yarn workspaces / npm workspaces
  • セキュリティ:3者ともnpm registry共通
  • lockファイル:package-lock.json / yarn.lock / pnpm-lock.yaml

pnpmの強み

node_modules配下をsymlinkで構成し、グローバルストアにファイル本体を集約。ディスク使用量が劇的に小さく、複数プロジェクトでも重複なし。インストールも速いです。

yarn Berry(v3+)の特徴

  • PnP(Plug’n’Play)でnode_modulesを排除
  • 厳密な依存解決
  • 導入難度はやや高い(ツール互換性に注意)

npm 10+の進化

  • npm workspacesによるモノレポ対応
  • 速度が改善され続けている
  • 標準なので統合性が一番高い

選び方の指針

  • 新規・モノレポ・速度重視:pnpm
  • 標準ツールで統一感重視:npm
  • 既存yarnプロジェクト:yarn継続またはpnpm移行
  • 厳密な依存管理を試したい:yarn PnP

切り替えのコツ

# npm → pnpm
rm -rf node_modules package-lock.json
pnpm import     # 既存lockからpnpm-lock生成
pnpm install

# corepackで複数pmを管理
corepack enable
corepack prepare pnpm@latest --activate

その他の選択肢

  • bun install:Bun内蔵の超高速インストーラ
  • deno install:Denoネイティブの依存管理

まとめ

パッケージマネージャは「ディスク効率・速度のpnpm」「標準のnpm」「厳密さのyarn」と棲み分け。新規でモノレポを始めるならpnpmが最有力候補です。既存プロジェクトは移行コストと天秤にかけて選びましょう。