Open2

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. 参考文献

このチートシートを手元に置けば、日常の依存管理からモノレポ運用まで大半の操作を即座に実行できます。Happy hacking!