Pnpmは何?
- 公式サイト pnpm.io によると、”pnpm” という名称は “performant npm” の略で、直訳すると「高性能なnpm」を意味します。この名前からも分かるように、pnpmの目的は「効率的なパッケージ管理」を実現することです。
ちなみに、npmとは “Node Package Manager” の略です。 - pnpmの開発者は、yarnがまだ存在しなかった時代にこのツールを開発しました。それが「pnpm」という名前の由来かもしれません。
Pnpmのメリット
1. メモリの節約
例えば、10個のプロジェクトを持っている場合、npmを使用すると、プロジェクトごとに巨大なnode_modules
フォルダが生成されます。
一方、pnpmは独自の仕組みとして「content-addressable store」を導入しています。これにより、各プロジェクトのnode_modules
は、実際にはグローバルストアへのリンク(symlink)を保持するのみとなります。

同じパッケージを何度もダウンロードする必要がないため、メモリ使用量が削減されます。
オフラインモードもサポートしており、ネットワークがオフラインの状態でもパッケージにアクセス可能です。
2. 高速なインストール
pnpmのインストールプロセスは3つのステップで構成されています:
- Dependency resolution: 必要な依存関係をダウンロードしてグローバルストアに保存。
- Directory structure calculation:
node_modules
ディレクトリの構造を計算。 - Linking dependencies: グローバルストアから
node_modules
に依存関係をハードリンクで配置。

これにより、npmやyarnのように各ステップ間にブロッキングタイムが発生せず、インストール速度が向上します。

Pnpmのデメリット
- 初回インストール時にnpm/yarnよりも時間がかかることがある。
- Symlinkを使用しているため、Windows環境で権限関連の問題が発生する可能性がある。
- 非フラットな
node_modules
構造が、古いパッケージと互換性がない場合がある。
インストール方法
npm install -g pnpm
Pnpmを使用する企業
pnpmは多くの大手企業で採用されており、その効果が実証されています。詳細はこちらをご覧ください。

まとめ
pnpmは、Node.jsのパッケージ管理において非常に効率的なツールです。その特徴を最大限に活用するため、ぜひ試してみてください!