Corepack
別名: corepack enable / packageManager フィールド / コアパック
package.json の packageManager フィールドを見て、指定どおりのバージョンの pnpm / Yarn / npm を自動で用意する Node.js 同梱のシム。
チーム内のパッケージマネージャ差異をなくす。
公開:
定義
Corepack は、Node.js が同梱するパッケージマネージャ用のシム(薄い中継役)です。package.json の packageManager フィールドに書かれたバージョンを読み、必要なら該当バージョンの pnpm や Yarn をダウンロードしてから実処理を委譲します。
開発者が個別にインストールしなくても、リポジトリが指定したバージョンで揃うのが狙いです。
詳細
packageManager は "pnpm@9.12.0" のようにパッケージ名とバージョンを固定で書きます。
Corepack を有効にした環境で pnpm install を叩くと、Corepack が間に入って指定バージョンを用意します。
有効化は明示操作が必要で、次のコマンドを 1 度だけ実行します。
corepack enable # pnpm / yarn / npm のシムを PATH に置く
corepack enable pnpm # 特定のマネージャだけ有効化するNode.js には長く同梱されてきましたが、Node.js 25 以降の公式配布物には含まれません。
その環境では npm install -g corepack で別途入れます。
よくある誤解
- Corepack がパッケージマネージャ本体である: 本体ではありません。
バージョンを解決して本物のバイナリへ橋渡しするだけです。 - 有効化しなくても効く: 既定では無効です。
corepack enableを打つまでシムは置かれず、pnpm: command not foundのままになります。 packageManagerを書けば CI でも自動で揃う: CI 側でも Corepack を有効にする手順が要ります。
関連
バージョン固定の対象になるファイルは Lockfile、指定を書く場所は package.json です。
実際の症状は pnpm が command not found になる を参照してください。