pnpm 12 は pnpm 11 からの機械的な移植ではなく、Rust による書き直し。npm の latest はなお 11 系を指すため、導入は next-12 タグから行う。
sh
pnpm self-update next-12破壊的変更の要点:
- GitHub / GitLab / Bitbucket 向けの Git 依存はホストの正規 HTTPS URL に寄せ、lockfile に SSH URL を残さない。私有リポジトリで SSH が必要なら
gitのinsteadOfで書き換える pnpm-workspace.yamlの未認識キーは報告される。実行中の pnpm がプロジェクトのピンを満たすときはERR_PNPM_UNRECOGNIZED_WORKSPACE_SETTINGSで失敗し、それ以外は警告- 循環依存の peer 解決が決定的になり、再解決後の lockfile がバイト一致しやすい。
--frozen-lockfileは既存 lockfile をそのまま読む - Linux の
packageImportMethod: autoは hardlink を先に試す(macOS は従来どおり clone 優先) engineStrictは、optional 配下でも通常のdependencies経由で到達した非互換パッケージで失敗する
主な追加:
globalShimsによるプロジェクト連動の global bin(既定でnode/deno/bun)- npm / Yarn / Bun など他パッケージマネージャの取得と
pnx、pnpm shim add - レジストリ revision(同一版の置換成果物を digest で記録)
pnpm initが最新リリース版をピンする挙動、pnpm stage approveの一括承認、audit.ignorePrunesudo下での global 変更系コマンド拒否(ERR_PNPM_SUDO_NOT_SUPPORTED)