pnpm 11.10 がリリースされた。レジストリ認証を URL キー付きの構造化値 _auth で渡せるようになり、認証情報は環境変数 pnpm_config__auth またはグローバル config.yaml からのみ有効になる。リポジトリ内の pnpm-workspace.yaml や .npmrc からは無視されるため、プロジェクト設定でトークンを別ホストへ向け直す経路を塞ぐ。従来の pnpm_config_//host/:_authToken=… 形式は GitHub Actions や bash / zsh が /・:・. を含む環境変数名を落とすため壊れやすく、普通の名前の _auth がその代替になる。
CI 向けの例は次のとおり。
sh
export pnpm_config__auth='{"https://registry.npmjs.org":{"@":{"authToken":"npm-token"},"@org":{"authToken":"org-token"}}}'グローバル config.yaml では次の形になる。
yaml
_auth:
https://registry.npmjs.org:
"@":
authToken: npm-token
"@org":
authToken: org-token各レジストリ URL 内で @ はレジストリ全体、@org はそのスコープ向けの認証を表す。受け付ける資格情報フィールドは authToken のみである。
主な変更は次のとおり。
pnpm self-update next-12で Rust 移植の pnpm v12(next-12dist-tag)を導入できる。ネイティブバイナリを直接リンクし、Node.js ランチャー起動コストを払わない。pnpm deploy --forceはワークスペースルートや親ディレクトリなど危険な出力先を拒否する。pnpm pack-appはプロジェクト外へ逃げる--entry/--output-dirを拒否し、macOS のcodesign/ldidもプロジェクト外から解決する。- pnpr 経由の解決では上流レジストリ資格情報を転送しなくなった。
- 依存名
__proto__による preferred versions のプロトタイプ汚染を塞いだ。 pnpm upが無関係なパッケージを上げてしまう問題を修正し、オフライン解決や省略メタデータを無視するレジストリ向けのキャッシュも改善した。