できない.dev

Corepack

別名: corepack enable / packageManager フィールド / コアパック

package.json の packageManager フィールドを見て、指定どおりのバージョンの pnpm / Yarn / npm を自動で用意する Node.js 同梱のシム。
チーム内のパッケージマネージャ差異をなくす。

公開:

定義

Corepack は、Node.js が同梱するパッケージマネージャ用のシム(薄い中継役)です。package.jsonpackageManager フィールドに書かれたバージョンを読み、必要なら該当バージョンの pnpmYarn をダウンロードしてから実処理を委譲します。
開発者が個別にインストールしなくても、リポジトリが指定したバージョンで揃うのが狙いです。

詳細

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 になる を参照してください。