pnpm について
JavaScript プロジェクトのパッケージ管理に使う pnpm のスキルです。コマンド、設定、ワークスペース、依存関係管理、セキュリティ、タスク実行、リリース手順を pnpm v11 と v12 向けに扱います。
主な機能
- 01パッケージとワークスペースのコマンド
- 02バージョンの一元管理と依存関係の上書き
- 03パッチ、フック、ピア依存関係の制御
- 04サプライチェーンセキュリティ設定
- 05ワークスペースのタスクとリリース管理
活用シーン
- 01pnpm プロジェクトの依存関係管理
- 02JavaScript モノレポの設定
- 03CI インストールとリリース手順の設定
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ antfu/ skills --skill pnpmインストール後、Claude Code で/pnpmを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
GENERATION.mdreferences/best-practices-ci.mdbest-practices-migration.mdbest-practices-performance.mdcore-cli.mdcore-config.mdcore-store.mdcore-workspaces.mdfeatures-aliases.mdfeatures-catalogs.mdfeatures-config-dependencies.mdfeatures-global-virtual-store.mdfeatures-hooks.mdfeatures-multi-ecosystem.mdfeatures-overrides.mdfeatures-patches.mdfeatures-peer-deps.mdfeatures-supply-chain-security.mdfeatures-task-orchestration.mdfeatures-versioning.md詳細
pnpm は高速でディスク容量を効率的に使うパッケージマネージャーです。コンテンツアドレス方式のストアを使用して、マシン上のすべてのプロジェクト間でパッケージを重複排除し、デフォルトで依存関係を厳格に解決することで、ファントム依存関係を防ぎます。
pnpm v12 は v11 を Rust で書き直したものです。安定しており、v11 のコマンド、フラグ、設定、ロックファイル形式を維持しているため、ここに記載されているガイダンスのほとんどは両方に適用されます。v12 では一部の動作が異なります(Git 依存関係は HTTPS 経由で解決、プロジェクトを認識するグローバル bin、その他のパッケージマネージャー、Linux では packageImportMethod: auto が最初にハードリンクを使用、--resolution-only を削除)。詳細は best-practices-migration を参照してください。
設定モデル(重要): pnpm の設定は、pnpm-workspace.yaml(およびグローバルな config.yaml)に camelCase のキーを使用して記述します。.npmrc は認証/レジストリの認証情報に のみ 使用され、package.json の pnpm フィールドは読み込まれなくなりました。pnpm プロジェクトで作業するときは、設定/ワークスペース構造については pnpm-workspace.yaml を、認証については .npmrc のみを確認してください。CI では常に --frozen-lockfile(または pnpm ci)を使用してください。
このスキルは pnpm 12.x に基づき、2026-09-25 に生成されました。現行ドキュメントで説明されている v11 と v12 の動作(設定の分離、分離されたグローバルパッケージ、
allowBuilds、pmOnFail、グローバル仮想ストア、ネイティブリリース管理、ワークスペースのタスクオーケストレーション、実験的な Python/Cargo サポート)を扱います。
コア
| トピック | 説明 | リファレンス |
|---|---|---|
| CLI コマンド | install/add/remove/update、run、dlx/pnx、workspace、runtime、公開(version、view、sbom、stage) | core-cli |
| 設定 | pnpm-workspace.yaml の設定(camelCase)、グローバル config.yaml、packageConfigs、.npmrc の認証 | core-config |
| ワークスペース | モノレポのサポート:フィルタリング、ワークスペースプロトコル、共有ロックファイル、packageConfigs | core-workspaces |
| ストア | コンテンツアドレス方式のストア、仮想ストア、Node リンカーモード、凍結/読み取り専用ストア | core-store |
機能
| トピック | 説明 | リファレンス |
|---|---|---|
| カタログ | 依存関係のバージョンを一元管理します。catalogMode、overrides 内の catalog: | features-catalogs |
| オーバーライド | バージョンを強制指定します(推移的依存関係とピア依存関係を含む)。packageExtensions | features-overrides |
| パッチ | サードパーティパッケージを変更します。pnpm-workspace.yaml 内の patchedDependencies | features-patches |
| エイリアス | 任意の名前(npm:)やレジストリエイリアス(namedRegistries)でインストールします | features-aliases |
| フック | .pnpmfile.mjs のフック(readPackage、updateConfig、beforePacking)、ファインダー、リゾルバー/フェッチャー | features-hooks |
| ピア依存関係 | 自動インストール、厳格モード、ルール、dedupePeers、ピア依存関係のチェック | features-peer-deps |
| 設定依存関係 | configDependencies を介して、リポジトリ間でフック/設定/カタログ/パッチを共有します | features-config-dependencies |
| グローバル仮想ストアとシム | 共有 node_modules、git-worktree を使ったマルチエージェント環境、分離されたグローバルパッケージ、プロジェクト対応の実行ファイル、その他のパッケージマネージャー | features-global-virtual-store |
| サプライチェーンセキュリティ | ビルドの承認(allowBuilds)、minimumReleaseAge、trustPolicy、ロックファイルの整合性 | features-supply-chain-security |
| タスクオーケストレーション | プロジェクト横断のタスクグラフ(tasks/dependsOn)、同時実行グループ、優先度、pnpm パイプライン | features-task-orchestration |
| リリース管理 | ネイティブのバージョン管理:pnpm change/version -r/lane、レーン、エピック、固定グループ | features-versioning |
| マルチエコシステム | npm に加えて、Python(pypi:)と Cargo(crate:)の依存関係に対応(実験的) | features-multi-ecosystem |
ベストプラクティス
| トピック | 説明 | リファレンス |
|---|---|---|
| CI/CD の設定 | GitHub Actions、GitLab、Docker、pnpm ci、ストアのキャッシュ、ロックファイルの固定 | best-practices-ci |
| 移行 | npm/Yarn から pnpm への移行、ファントム依存関係、pnpm v10 → v11 → v12 へのアップグレードに関する注意事項 | best-practices-migration |
| パフォーマンス | インストールの最適化、allowBuilds、グローバル仮想ストア、ワークスペースの並列化 | best-practices-performance |