概要

pnpm が管理する Node.js ランタイムやエンジン(固定された pnpm 自体を含む)のインストール・選択まわり。グローバル node シムが .nvmrc・.node-version を読めるようになり(v12.7.0)、ピン留めされた pnpm/ランタイムのインストールでロック競合時は短い待機のあとプロセス専用のプライベートコピーで実行する。runtime: の範囲に || を含む場合に npm パッケージ node と誤解決される問題が直り、pnpm-workspace.yaml の無い単一プロジェクトでも固定された pnpm の minimumReleaseAge 承認が記録されるようになった。arm64 musl Linux では pnpm 11 のスタンドアロン実行ファイルの配布をやめる変更が入った(未リリース)。未リリースの修正として、固定された pnpm が対応するオプション(--auto-dedupe など)をグローバルの pnpm が切り替え前に拒否しなくなり、pnpm を固定した git 依存の準備でも pmOnFail が効くようになった(NixOS 向け)。v12.8.1 の Linux ppc64le バイナリが起動時にクラッシュする問題も修正された。

主な API・オプション

  • グローバル node シムのバージョン解決順(同一ディレクトリ): package.json の devEngines.runtime/engines.runtime → .node-version → .nvmrc。ディレクトリをまたぐ場合は最も近い宣言が勝つ
  • .nvmrc / .node-version — コメント・v プレフィックス・nvm エイリアスに対応
  • ピン留めされたエンジン/ランタイムのインストール — 共有スロットのロックを5秒待ち、取れない場合はストアの tmp/private 配下に専用コピーを作って実行
  • devEngines.runtime の範囲 — ^22.18.0 || ^24.0.0 のような runtime: の和集合も npm リゾルバーに渡らない。影響を受けた lockfile は pnpm install --fix-lockfile で解決し直せる
  • pmOnFail / --pm-on-fail — download 以外なら git 依存の準備で pnpm をダウンロードせず実行中の pnpm を使う(v12、未リリース)

変更履歴

  • 2026-09-30 — ppc64le のリリースバイナリが起動時にクラッシュする問題を修正(#16384)⏳ 未リリース · 変更
  • 2026-09-30 — git 依存の準備で pmOnFail を尊重(#16382)⏳ 未リリース · 変更
  • 2026-09-30 — 不明なオプションを拒否する前に固定された pnpm へ引き渡す(#16360、#16362)⏳ 未リリース · 変更
  • 2026-09-28 — arm64 musl 向けの pnpm 11 実行ファイルの配布を停止、pnpm 12 は JavaScript 版へ切り替え(#16307)⏳ 未リリース · 変更
  • 2026-09-28 — runtime: の範囲指定の || が npm パッケージとして解決される問題を修正(#15443)📦 pnpr@0.1.0-alpha.13 · 変更
  • 2026-09-28 — 単一プロジェクトでも固定された pnpm の release age 除外を記録(#15461)📦 pnpr@0.1.0-alpha.13 · 変更
  • 2026-09-24 — エンジン/ランタイムのロック待ちを最大5秒に短縮、待ちきれない場合は専用コピーで実行(#15417)⏳ 未リリース · 変更
  • 2026-09-24 — グローバル Node シムが .node-version にも対応(#15398)⏳ 未リリース · 変更
  • 2026-09-24 — グローバル Node シムが .nvmrc も読むように(#15247)⏳ 未リリース · 変更

関連