pnpm について
JavaScriptプロジェクトのパッケージ管理に使う pnpm のスキルです。コマンド、設定、ワークスペースを扱い、コンテンツアドレス可能なストアや厳密な依存関係解決、monorepo運用を取り上げます。
主な機能
- 01インストールとCLIコマンドの案内
- 02ワークスペースと依存関係のフィルタリング
- 03コンテンツアドレス可能なストアとキャッシュ
- 04設定、パッチ、依存関係の上書き
- 05CI、Docker、本番デプロイのガイド
活用シーン
- 01monorepoでの依存関係とスクリプトの管理
- 02CIでのロックファイル固定インストール
- 03依存関係の解決やインストールエラーの調査
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ hairyf/ skills --skill pnpmインストール後、Claude Code で/pnpmを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
GENERATION.mdreferences/advanced-limitations.mdbest-practices-ci.mdbest-practices-docker.mdbest-practices-git.mdbest-practices-migration.mdbest-practices-only-allow-pnpm.mdbest-practices-performance.mdbest-practices-podman.mdbest-practices-production.mdbest-practices-typescript.mdcore-cli.mdcore-config.mdcore-errors.mdcore-installation.mdcore-limitations.mdcore-package-sources.mdcore-store.mdcore-typescript.mdcore-workspaces.mdfeatures-aliases.mdfeatures-cache.mdfeatures-catalogs.mdfeatures-changesets.mdfeatures-completion.mdfeatures-config-dependencies.mdfeatures-env.mdfeatures-filtering.mdfeatures-finders.mdfeatures-git-branch-lockfiles.md詳細
pnpm は高速で、ディスク容量を効率的に使用するパッケージマネージャーです。コンテンツアドレス指定可能なストアを使用して、マシン上のすべてのプロジェクト間でパッケージを重複排除し、ディスク容量を大幅に節約します。pnpm はデフォルトで厳密な依存関係の解決を適用し、ファントム依存関係を防ぎます。pnpm 固有の設定は、pnpm-workspace.yaml に配置することを推奨します。
重要: pnpm プロジェクトで作業する場合、エージェントは pnpm-workspace.yaml ファイルと .npmrc ファイルを確認し、ワークスペースの構成と設定を把握してください。CI 環境では常に --frozen-lockfile を使用してください。
このスキルは pnpm 10.x に基づいており、2026-02-01 に生成されました。
コア
| トピック | 説明 | 参照 |
|---|---|---|
| インストール | スタンドアロンスクリプト、Corepack、npm、システムパッケージマネージャー | core-installation |
| CLI コマンド | インストール、追加、削除、更新、実行、exec、dlx、ワークスペースコマンド | core-cli |
| 設定 | pnpm-workspace.yaml、.npmrc の設定、package.json のフィールド | core-config |
| ワークスペース | フィルタリング、workspace プロトコル、共有ロックファイルによるモノレポのサポート | core-workspaces |
| ストア | コンテンツアドレス指定可能なストレージ、ハードリンク、ディスク効率 | core-store |
| パッケージソース | npm、JSR、ワークスペース、Git、tarball—信頼済みのソースと特殊なソース | core-package-sources |
| エラー | 一般的なエラーコードと解決方法 | core-errors |
機能
| トピック | 説明 | 参照 |
|---|---|---|
| フィルタリング | --filter 用の豊富なセレクター構文(依存関係、依存元、変更、glob) | features-filtering |
| カタログ | ワークスペース全体で依存関係のバージョンを一元管理 | features-catalogs |
| オーバーライド | 間接依存関係を含む依存関係の特定バージョンを強制 | features-overrides |
| パッチ | カスタム修正を適用してサードパーティパッケージを変更 | features-patches |
| エイリアス | npm: プロトコルを使用して、カスタム名でパッケージをインストール | features-aliases |
| フック | .pnpmfile.cjs フックで解決方法をカスタマイズ | features-hooks |
| ピア依存関係 | 自動インストール、厳密モード、依存関係ルール | features-peer-deps |
| 設定依存関係 | プロジェクト間でフック、カタログ、パッチを共有 | features-config-dependencies |
| Git ブランチロックファイル | マージ競合を避けるためのブランチ固有のロックファイル | features-git-branch-lockfiles |
| Changesets | モノレポのバージョン管理と公開 | features-changesets |
| サプライチェーンセキュリティ | allowBuilds、blockExoticSubdeps、trustPolicy | features-supply-chain-security |
| ファインダー | パッケージのプロパティで依存関係グラフを検索(v10.16+) | features-finders |
| 補完 | シェルのタブ補完(Bash、Zsh、Fish) | features-completion |
| スクリプト | ライフサイクルスクリプトと pnpm:devPreinstall | features-scripts |
| キャッシュ | メタデータキャッシュのコマンド(一覧表示、表示、削除) | features-cache |
| Node.js 環境 | Node.js のバージョンを管理(pnpm env use/add/remove) | features-env |
| 公開とデプロイ | Docker とレジストリ向けの publish、pack、deploy、fetch | features-publish-deploy |
ベストプラクティス
| トピック | 説明 | リファレンス |
|---|---|---|
| CI/CD の設定 | GitHub Actions、GitLab CI、Docker、キャッシュ戦略 | best-practices-ci |
| Docker | モノレポ向けの BuildKit キャッシュ、pnpm fetch、pnpm deploy | best-practices-docker |
| 本番環境 | ロックファイルを使ったデプロイ、オフラインインストール | best-practices-production |
| pnpm のみを許可 | preinstall(only-allow)で pnpm のみを許可 | best-practices-only-allow-pnpm |
| TypeScript | preserveSymlinks、packageExtensions、@pnpm/plugin-types-fixer | best-practices-typescript |
| Podman | Btrfs reflink、store と node_modules のボリュームマウント | best-practices-podman |
| Git | ロックファイルのコミットとマージコンフリクトの解決 | best-practices-git |
| 移行 | npm/Yarn からの移行、ファントム依存関係への対処、モノレポの移行 | best-practices-migration |
| パフォーマンス | インストールの最適化、ストアのキャッシュ、ワークスペースの並列化 | best-practices-performance |
高度なトピック
| トピック | 説明 | リファレンス |
|---|---|---|
| 制限事項 | npm のロックファイルは無視され、binstub はシェルスクリプトです | advanced-limitations |
コメント
Markdown 対応