INDIE INDEX

制作

pnpm とは|同じファイルを1つだけ持つパッケージの管理ツール

公開 2026-09-18更新 2026-09-18pnpm

pnpm は、JavaScript の部品を取り寄せて管理するツールです。同じファイルを機械の中に1つだけ置き、それぞれの企画からはそこへの結び付けを作るので、企画が増えても置き場が増えません。

分類
プログラミング補助
制作の流れ
制作
日本語対応
日本語非対応
費用
無料(MIT ライセンス)
公式サイト
https://pnpm.io/確認日 2026-09-18
このページの目次
  1. pnpm の概要
  2. pnpm の特徴
  3. pnpm の費用とライセンス
  4. 情報源

pnpm の概要

pnpm(ピーエヌピーエム)は、JavaScript の部品(パッケージ)を取り寄せて管理するツールです。公式サイトは、掲げる一文を「Fast, disk space efficient package manager(速く、置き場を無駄にしないパッケージの管理ツール)」としています。

公式のリポジトリは、pnpm の性質を8つ挙げています。速いこと(ほかの選択肢の最大2倍。測り方は公式の比較の頁にあります)、置き場を無駄にしないこと、複数の企画を1つの置き場でまとめるのに向くこと、厳しいこと(package.json に書いた部品にしか手が届かない)、同じ結果になること(pnpm-lock.yaml という固定のファイルを持つ)、Node.js の版を切り替える仕組みとしても働くこと、Windows・Linux・macOS で動くこと、2016年から実際の仕事で使われてきたことです。

公式サイトは、pnpm を npm とそのまま入れ替えられるものだとしています。

【公式】https://pnpm.io/

pnpm の特徴

pnpm はゲームを描く機能を持ちません

pnpm が受け持つのは、部品を取り寄せて置き、版を固定する部分です。絵や音を扱う機能は持ちません。

pnpm の置き場の使い方

npm を使う場合、同じ部品に頼る企画が100あれば、その部品の写しが機械の中に100できます。pnpm では、部品を中身で引ける1つの置き場に入れ、そこから結び付けます。

場合 pnpm がすること
同じ版を複数の企画で使う 機械の中の写しは1つだけ。それぞれの node_modules へ結び付けます。追加の置き場は要りません
新しい版が出て、100個のファイルのうち1個だけが変わった 置き場に足すのはその1個だけ。部品まるごとを写し直しません

結び付けには、同じ中身を指す固い結び付け(ハードリンク)か、書き換えのときだけ写す形(リフリンク)を使います。

pnpm の取り寄せの3段階

公式ドキュメントは、取り寄せを3つの段に分けています。

何をするか
1 要る部品をすべて見定め、置き場へ取り寄せます
2 部品の関係から node_modules の並べ方を計算します
3 残りを取り寄せ、置き場から node_modules へ結び付けます

見定め・取り寄せ・結び付けは、段ごとに終わらせるのではなく同時に進みます。すでに置き場にあるものが多い状態では、取り寄せはほとんど結び付けを作るだけになります。

pnpm の node_modules の並べ方

npm や Yarn Classic では、すべての部品が node_modules の一番上へ引き上げられます。その結果、企画が自分では書いていない部品にもコードから手が届いてしまいます。

pnpm は既定で、その企画が直に書いた部品だけを一番上に置きます。置き方には印の結び付け(シンボリックリンク)を使います。印の結び付けと相性の悪いツールを使っている場合は、nodeLinker の設定を hoisted にします。npm や Yarn Classic と似た並べ方になります。

pnpm のそのほかの機能

公式サイトが挙げている機能は次のとおりです。

機能 中身
複数の企画をまとめる 手元の部品を指す書き方、触った企画にだけ作業を流す絞り込み、全体で1つの固定のファイル
版をまとめて決める pnpm-workspace.yaml に版を1度書き、あちこちから "catalog:" で参照します
組み立ての安全 取り寄せた部品の組み立ての手順を、勝手には動かしません。動かしてよい部品を人が選びます
部品に手を入れる pn patch で、当て直される差分を残せます。元の作り手の修正を待たずに直せます
実行環境の管理 企画ごとに Node.js を入れて固定できます

命令の短い別名として pn が最初から用意されています。

pnpm の言語の切り替え

公式サイトの上部には言語を切り替える欄があり、日本語も並んでいます。ただし pnpm.io/ja/ の下の頁に出る本文は英語のままです。

公式のリポジトリの README には、日本語を含む5つの言語の版への案内が置かれています。

pnpm の費用とライセンス

pnpm は無料です。公式のリポジトリは、ライセンスを MIT ライセンスとしています。

MIT ライセンスとは

MIT ライセンス(MIT License)は、著作権の表示とライセンス文を残せば、商用も含めて自由に使ってよいとする短い決まりです。

項目 内容
費用 無料
ライセンス MIT ライセンス
12.x(11.x・10.x の資料も残っています)
動く機械 Windows・Linux・macOS
入手の方法 macOS と Linux は、公式サイトが示す get.pnpm.io/install.sh の手順。単体の手順を使えば Node.js は要りません

公式サイトには支援の入口が3つ(Open Collective・GitHub Sponsors・暗号資産による寄付)あります。公式のリポジトリには、Rust で書き直す試み(pacquet)が同梱されていることも書かれています。

情報源

pnpm のページに出た言葉

pnpm と同じ分類のほかのツールプログラミング補助 全22件

プログラミング補助の一覧を見る