概要

pnpm が npm に加えて Cargo・PyPI のパッケージも扱うようになったことに伴う、設定スキーマの統合作業。issue 14945 のフォローアップとして [[repos/pnpm-pnpm/changes/2026-09-24|#15035 → #15043 → #15054]] と続いた一連の PR により、overrides・registries・supportedArchitectures・ダウンロード元ミラーなど、以前はエコシステムごとにバラバラだった設定が共通の形にまとまりつつある。pnpm add も Package URL(purl)を受け付けるようになり、--force 実行時のプラットフォームフィルタの扱いも見直された。Cargo 連携では、pnpm install --frozen-lockfile が Cargo.toml と合わない Cargo.lock を ERR_PNPM_OUTDATED_LOCKFILE で拒否するようになった(未リリース)。

主な API・オプション

  • overrides.npm / overrides.pypi — エコシステム別の依存関係上書き(PyPI 側は PEP 508 要求文字列)
  • registries.<url>.ecosystem — npm / cargo / pypi。複数インデックスは宣言順に検索
  • supportedArchitectures — プラットフォーム名(linux-x64 など)の列挙、または Rust ターゲットトリプル。python.platforms を統合済み
  • tools.<name>.mirror / tools.<name>.channels — Node/Bun/Deno/Python のダウンロード元ミラー
  • pnpm add pkg:npm/... / pkg:cargo/... / pkg:pypi/... — Package URL によるパッケージ追加
  • forceIgnoresPlatform — --force 実行時にプラットフォーム不一致の optional dependencies をスキップするか(v12 既定 false / v11 既定 true)
  • cargo.enabled: true + --frozen-lockfile — Cargo.lock をワークスペースメンバーの依存と照合

変更履歴

  • 2026-09-30 — frozen install で古い Cargo.lock を拒否(#16357)⏳ 未リリース · 変更
  • 2026-09-24 — --force でもプラットフォームフィルタを効かせる forceIgnoresPlatform を追加(#15330)⏳ 未リリース · 変更
  • 2026-09-24 — registries のエントリにエコシステム(npm/pypi/cargo)を指定できるように(#15054)📦 v12.6.0 · 変更
  • 2026-09-24 — pnpm がダウンロードするツール(Node/Bun/Deno/Python)のミラーを tools で一括設定(#15043)📦 v12.6.0 · 変更
  • 2026-09-24 — supportedArchitectures にプラットフォーム単位の指定を追加、python.platforms を統合(#15035)📦 v12.6.0 · 変更
  • 2026-09-24 — overrides にエコシステムごとのセクションを追加(npm/pypi)(#15024)📦 v12.6.0 · 変更
  • 2026-09-24 — pnpm add が Package URL(purl)に対応(#14949)📦 v12.6.0 · 変更

関連