概要

pnpm install による取得・配置(node_modules のレイアウト、フック、ネットワーク)まわり。複数階層の modulesDir(www/modules など)が各プロジェクトに正しく連結されるようになり、nodeLinker: hoisted で削除したパッケージのコマンドが .bin に残らなくなった。engineStrict の判定前に readPackage フックが適用されるようになり、レジストリが応答を止めたときはタイムアウトだと分かるエラーを出す。未リリースの新機能として、http/https の tarball 依存でレスポンスの Cache-Control に従い、不要なリクエストを省くようになった。v12.8.1 では 12.8.0 で file: ディレクトリ依存や injected パッケージのファイルが実行ビットを失っていた後退が直った。未リリースの修正として、CA 証明書の無いシステムで NODE_EXTRA_CA_CERTS を設定しても同梱のルートにフォールバックし、Nix のサンドボックスでもシムのヘルパーが PATH から見つかるようになり、tarball の展開に zlib-rs を使うようになった。

主な API・オプション

  • modulesDir — 相対パスは全体を各プロジェクトのディレクトリに連結(pnpm bin も同様)
  • readPackage フック(.pnpmfile.cjs)— engineStrict を含むインストール可否の判定前に適用
  • fetchTimeout — 超えた場合のエラーにタイムアウトであることと設定のヒントを表示
  • http/https tarball の Cache-Control — <cacheDir>/v11/tarball-resolutions に記録し、新鮮なら通信なし、古ければ If-None-Match で再検証(v12)
  • NODE_EXTRA_CA_CERTS — システムの CA ストアが空なら同梱の Mozilla ルートに追加して使う(v12、未リリース)

変更履歴

  • 2026-09-30 — flate2 の zlib-rs バックエンドで展開を高速化(#16235)⏳ 未リリース · 変更
  • 2026-09-30 — シムのヘルパーが command -p で見つからないとき PATH にフォールバック(#16379)⏳ 未リリース · 変更
  • 2026-09-30 — CA 証明書の無いシステムでも NODE_EXTRA_CA_CERTS を追加扱いに(#16367)⏳ 未リリース · 変更
  • 2026-09-30 — local ディレクトリ依存のファイルが実行ビットを失う 12.8.0 の後退を修正(#16318)📦 v12.8.1 · 変更
  • 2026-09-28 — http/https の tarball 依存で Cache-Control を尊重(#15719)⏳ 未リリース · 変更
  • 2026-09-28 — レジストリが応答を止めたときにタイムアウトだと分かるエラーに(#15544)📦 pnpr@0.1.0-alpha.13 · 変更
  • 2026-09-28 — nodeLinker: hoisted で削除したパッケージのコマンドを .bin から除去(#15429)📦 pnpr@0.1.0-alpha.13 · 変更
  • 2026-09-28 — engineStrict のチェック前に readPackage フックを適用(#15525)📦 pnpr@0.1.0-alpha.13 · 変更
  • 2026-09-28 — 複数階層の modulesDir をプロジェクトディレクトリに正しく連結(#15524)📦 pnpr@0.1.0-alpha.13 · 変更

関連