概要

依存関係の解決・カタログ・更新まわり。解決中に見つかった互換なバージョンをまとめる自動重複排除(autoDedupe)、カタログエントリでの file:/link: プロトコル対応、pnpm update --peer による peerDependencies の更新に対応している。重複排除では catalog: が固定するバージョンも直接指定と同じく優先されるようになった。lockfile の再利用判定はプレリリースと安定版の範囲を厳密に区別し、npm エイリアスも保持する。minimumReleaseAge まわりでは、レジストリから消えたバージョンを pnpm update <pkg> で置き換えられるようになり、時間ベースの解決で成熟したバージョンが優先されるよう修正中(未リリース)。pnpm dedupe の収束性の修正が続き、ハッシュ化された peer 接尾辞の読み戻し(v12.8.1)と、変種の統合後のキーの付け直し(未リリース)で pnpm dedupe --check が通るようになった。minimumReleaseAge で latest が隠れたときは、同じメジャーのプレリリースを下位メジャーの安定版より優先する(未リリース)。

主な API・オプション

  • autoDedupe — pnpm-workspace.yaml またはコマンドラインの --auto-dedupe/--no-auto-dedupe で有効化。frozen install はロックファイルを変えない
  • カタログエントリの file:/link: プロトコル — 相対パスは pnpm-workspace.yaml の位置を基準に解決
  • pnpm update --peer / pnpm up --peer --latest / pnpm up --peer <name> — peerDependencies の更新(オプトイン)
  • catalog: 指定 — 重複排除の優先バージョン計算で、カタログが固定するバージョンに直接指定と同じ重みを与える
  • minimumReleaseAge の dist-tag フォールバック — 同じメジャーの安定版 → 同じメジャーのプレリリース(対象より前)→ 下位メジャー(latest のみ)の順

変更履歴

  • 2026-09-30 — minimumReleaseAge で latest が隠れたとき同じメジャーのプレリリースに戻る(#16407)⏳ 未リリース · 変更
  • 2026-09-30 — injected なワークスペース依存を peer 変種の統合後に重複排除し link: で記録(#16361)⏳ 未リリース · 変更
  • 2026-09-30 — 変種の統合後に peer 依存側のキーを付け直し pnpm dedupe を冪等に(#16359)⏳ 未リリース · 変更
  • 2026-09-30 — ハッシュ化された peer 接尾辞でも pnpm dedupe が収束(#16335)📦 v12.8.1 · 変更
  • 2026-09-28 — 時間ベースの解決で成熟したバージョンを優先(#16304)⏳ 未リリース · 変更
  • 2026-09-28 — 再利用した子の再解決で npm エイリアスを保持(#16310)⏳ 未リリース · 変更
  • 2026-09-28 — lockfile の tarball URL から既定ポート(:443/:80)を除去(#15540)📦 pnpr@0.1.0-alpha.13 · 変更
  • 2026-09-28 — プレリリースから安定版の範囲へ変えたときに再解決(#15532)📦 pnpr@0.1.0-alpha.13 · 変更
  • 2026-09-28 — レジストリから消えたバージョンが lockfile にあっても pnpm update <pkg> できるように(#15450)📦 pnpr@0.1.0-alpha.13 · 変更
  • 2026-09-28 — 重複排除で catalog: が固定するバージョンを優先(#15518)📦 pnpr@0.1.0-alpha.13 · 変更
  • 2026-09-24 — 依存関係の自動重複排除(autoDedupe)を追加(#15218)📦 v12.6.0 · 変更
  • 2026-09-24 — カタログのエントリで file:/link: プロトコルを使えるように(#15108)📦 v12.6.0 · 変更
  • 2026-09-24 — pnpm update --peer で peerDependencies も更新可能に(#11031)📦 v12.6.0 · 変更

関連