Q. npm, pnpm, yarn, npxの違いを一ミリも理解していない
npm、pnpm、yarn、npxの違いを一ミリも理解していないと相談を受けた際のメモ。
入力して検索を開始
1posts
npm、pnpm、yarn、npxの違いを一ミリも理解していないと相談を受けた際のメモ。
ワークスペース向けに pnpm change / lane / version -r と doctor・access・team が追加された。path traversal の修正と cold-cache 解決時のピークメモリ削減も含む。
レジストリ認証用の _auth 設定が追加され、トークンと宛先ホストを一体で渡しリポジトリ設定からのリダイレクトを防ぐ。pnpm self-update next-12 で Rust 移植の v12 も導入できる。
チェックサムを返せないレジストリ向けに tarball integrity を lockfile へ記録し、pnpm sbom に --exclude-peers が追加された。循環 lockfile での audit 性能と peer 解決の非決定論も修正されている。
Rust 製の npm レジストリ互換サーバー pnpr が pnpm モノレポ内で実験公開された。プライベートレジストリ、上流キャッシュ、サーバー側依存解決による install 高速化に対応する。
リポジトリ内 .npmrc と pnpm-workspace.yaml で環境変数プレースホルダを展開し、依存解決時に CI トークン等を攻撃者レジストリへ送る脆弱性。v10.34.2 と v11.5.3 で修正され、リポジトリ側の ${...} 展開は停止する破壊的変更を含む。
Node.js 22 以上が必須で本体は pure ESM になった。供給網向けの既定が強まり、ストアは SQLite インデックス、publish 系は npm CLI 非依存のネイティブ実装に切り替わった。
pnpm 本体の Rust 移植を pacquet で段階的に進める計画が公開された。ロックファイル固定インストールと依存解決はほぼ同等、残りは非 install 系コマンドと pnpm への opt-in 統合が中心である。
遅いメタデータ取得と tarball ダウンロードを検知して警告するようになった。閾値は fetchWarnTimeoutMs と fetchMinSpeedKiBps で調整できる。
pnpm 10.17リリース。minimumReleaseAgeから指定されたパッケージを除外するminimumReleaseAgeExcludeがパターン記法をサポート。
pnpm 10.16でminimumReleaseAge設定とfinder functionsが追加された。minimumReleaseAgeにより、パッケージ公開から指定時間経過後のインストールを遅延させ、悪意のあるバージョンのインストールリスクを低減できる。
pnpm v10.15 がリリース。未使用のカタログエントリーを削除する cleanupUnusedCatalogs 設定や、設定依存関係からの pnpmfile の自動ロード機能が追加された。また、pnpm config コマンドが改善され、プロパティパスの指定や JSON 形式の入出力に対応した。
pnpm がバージョン 10.12.1 をリリース。実験的な global virtual store の追加と version catalog system の機能強化など。
パッケージマネージャー pnpm の新バージョンがリリース。JSR パッケージのサポートと新しいビルド設定オプションを導入。
pnpm 10.6.0 がリリースされました。
pnpm v10 がリリースされた。
pnpm v9.7.0 がリリースされた。
pnpm v9.6.0 が 7 月 21 日リリースされた。
pnpm v9.5 がリリースされました。
pnpm v9 が 2024 年 4 月 18 日にリリースされました。
https://github.com/pnpm/pnpm/releases/tag/v8.9.0