Open2
pnpmについて📝

pnpmについて

pnpm の CLIチートシート📝
1. 概要
pnpm は「ハードリンクで共有ストアを使う」という仕組みで インストールを高速化し、ディスク容量を節約する Node.js パッケージマネージャーです (pnpm.io)。
コマンド体系は npm に似ていますが、ワークスペース内パッケージを一括操作できる -r/--recursive
や、部分的に絞り込む --filter/-F
など モノレポ向けの独自機能が充実しています (pnpm.io, pnpm.io)。
2. インストールと初期化
目的 | コマンド | メモ |
---|---|---|
pnpm を global に入れる | npm i -g pnpm |
npm でも corepack でも可 |
プロジェクト初期化 | pnpm init |
対話式で package.json を作成 |
依存関係を一括インストール | pnpm install |
pnpm i 省略形 (pnpm.io) |
3. 依存関係の操作
# 追加
pnpm add <pkg> # prod 依存
pnpm add -D <pkg> # dev 依存
pnpm add -g <pkg> # グローバル
pnpm add <pkg>@next # タグ/バージョン指定
# 削除
pnpm remove <pkg>
# 更新
pnpm update # 既存 dependency を最新範囲へ
pnpm update --latest # semver 範囲を無視して最新版へ :contentReference[oaicite:3]{index=3}
# 情報
pnpm list # 依存ツリー表示 :contentReference[oaicite:4]{index=4}
pnpm outdated # 更新可能パッケージを確認
4. スクリプト実行
pnpm run <script> # npm run と同等
pnpm <script> # 省略形 (例: pnpm build) :contentReference[oaicite:5]{index=5}
pnpm dlx <pkg> # npx 相当の一時実行
5. ワークスペース & モノレポ
コマンド | 説明 |
---|---|
pnpm-workspace.yaml |
ルートでパッケージ範囲を定義 (pnpm.io) |
pnpm install -r |
全パッケージを一括インストール |
pnpm --filter <selector> <cmd> |
選択したパッケージだけにコマンド適用 (pnpm.io) |
pnpm -F "docs..." add react |
ワイルドカードでフィルター実行例 (Stack Overflow) |
pnpm run -r build |
全パッケージで build スクリプト |
セレクター例
-
pkg-a
: 名前で指定 -
./packages/*
: パス指定 -
...pkg-b
: 依存グラフで下流を選択(“dependents”)(GitHub)
6. キャッシュ & ストア操作
pnpm store path # 共有ストアの場所を確認
pnpm store prune # 未使用パッケージを削除
pnpm store list # ストア内のパッケージ一覧
7. 設定 & 実用フラグ
フラグ | 用途 |
---|---|
--workspace-root |
ルート強制実行 |
--parallel / --serial
|
スクリプト並列 or 直列実行 |
--offline |
ネット無しでキャッシュから解決 |
--lockfile-only |
lockfile だけ更新 (CI で便利) |
8. npm 互換コマンド対照表
npm | pnpm |
---|---|
npm install |
pnpm install |
npm i <pkg> |
pnpm add <pkg> |
npm run <cmd> |
pnpm <cmd> |
npx <pkg> |
pnpm dlx <pkg> |
npm uninstall |
pnpm remove |
(公式対照 (pnpm.io, cuyl.github.io))
9. 参考文献
- pnpm 公式 CLI ドキュメント (pnpm.io)
- Workspaces (pnpm.io)
- Filtering (pnpm.io)
- List コマンド (pnpm.io)
- pnpm-workspace.yaml (pnpm.io)
- 公式スペック: Filtering (GitHub)
- Update の挙動 issue (GitHub)
- 包括的ガイド (Refine.dev) (Refine)
- CLI チートシート(FE Handbook) (Handbook – Frontend Engineer)
- npm vs yarn vs pnpm コマンド比較 (DEV Community)
このチートシートを手元に置けば、日常の依存管理からモノレポ運用まで大半の操作を即座に実行できます。Happy hacking!