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が最有力候補です。既存プロジェクトは移行コストと天秤にかけて選びましょう。