pnpm の 2021 年
今年も終わりですが、pnpmにとって良い年でしたので、どのように進んだか見てみましょう。
使用状況
ダウンロード統計
今年の目標は、ダウンロード数で Bower を上回ることでした。私たちは11月にこの目標を達成することができました。
pnpm は 2021 年に、2020 年と比べて約 3 倍ダウンロードされました。
これらの統計は、pnpm がインストールされる可能性のあるさまざまな方法をすべて測定しているわけではありません!pnpm npm パッケージのダウンロード数のみを測定しています。今年、私たちはまた、異なる方法で配布される pnpm のコンパイル済みバイナリバージョンを追加しました。
ドキュメントの閲覧数
Google アナリティクスを使用して、ドキュメントから非個人化された統計を収集しています。2021 年には、毎週 2,000 人を超えるユニークビジターがいた時期もありました。
ユーザーのほとんどはアメリカ合衆国と中国からです。
GitHub スター
私たちのメインの GitHub リポジトリは、今年 5,000 個以上のスターを獲得しました。
新規ユーザー
今年の最大の新しいユーザーは、TikTok を運営する企業であるByteDanceです。
また、多くの優れたオープンソースプロジェクトが pnpm を使い始めました。モノレポの優れたサポートのために pnpm に切り替えたプロジェクトもあります。
pnpm の効率性、速度、美しさに惹かれて切り替えたプロジェクトもあります。
主な機能
新しいロックファイル形式(v6.0.0 以降)
今年最初の、そして最も重要な変更の1つは、新しいpnpm-lock.yaml
形式でした。これは破壊的変更だったため、v6をリリースする必要がありました。しかし、それは成功でした。古いロックファイルは頻繁にGitの競合を引き起こしていました。新しい形式が導入されて以来、Gitの競合に関する苦情は受けていません。
Node.js バージョンの管理(v6.12.0 以降)
Node.js バージョンの管理を可能にする新しいコマンド(pnpm env
)をリリースしました。そのため、nvm や Volta などの Node.js バージョンマネージャーの代わりに pnpm を使用できます。
また、pnpm はスタンドアロンの実行可能ファイルとして提供されるため、システムに Node.js が事前にインストールされていなくても実行できます。
ローカル依存関係の挿入(v6.20.0 以降)
ローカル依存関係を「挿入」できます。デフォルトでは、ローカル依存関係は `node_modules` にシンボリックリンクされますが、この新しい機能を使用すると、代わりにパッケージのファイルをハードリンクするように pnpm に指示できます。
ピア依存関係の問題に関するレポートの改善(v6.24.0 以降)
ピア依存関係の問題は、以前はプレーンテキストで出力され、理解しづらかったですが、現在はすべてグループ化され、見やすい階層構造で出力されます。
競合製品
Yarn
Yarn は v3.1 で pnpmリンカーを追加しました。そのため、Yarn は pnpm が作成する node-modules ディレクトリ構造と同様の構造を作成できます。
また、Yarn チームは、ディスク容量をより効率的に使用するために、コンテンツアドレス可能なストレージを実装する計画です。
npm
npm チームも、pnpm が使用するシンボリックリンクされた node-modules ディレクトリ構造を採用することを決定しました(関連するRFC)。
その他
Zig で記述された Bun と Rust で記述された Volt はどちらも、npm/Yarn/pnpm より高速であると主張しています。まだこれらの新しいパッケージマネージャーのベンチマークは実施していません。
今後の計画
より速く、より良く、最高に。