今年はpnpmにとって良い年でした。年末なので、1年を振り返ってみましょう
使い方
ダウンロード数
今年の目標は、ダウンロード数でBowerに勝つことでした。 11月にこの目標を達成することができました。
pnpmは 2021年に 2020年の 約 3倍 ダウンロードされました。
この統計は、pnpmの全てのインストール方法を測定しているわけではありません。 pnpm npm packageダウンロード数のみを測定しています。 今年追加したpnpmのコンパイル済みバイナリバージョンは別で配布されます。
ドキュメントの訪問者数
私たちはGoogle Analyticsを使って、ドキュメントサイトから個人を特定できない統計情報を収集しています。 2021年には、1週間に2,000人以上のユニークビジターが訪れることもありました。
利用者の大半はアメリカか中国からアクセスしています
GitHubのスター数
メインのGitHubリポジトリは、今年だけで5000以上のスターを獲得しました
新規ユーザー
Our biggest new user this year is Bytedance (the company behind TikTok).
また、多くの素晴らしいオープンソースプロジェクトがpnpmを使用するようになりました。 スイッチした理由として、pnpmがモノレポを強力にサポートしていることを挙げるプロジェクトがあります
pnpmの効率、スピード、美しさが気に入って乗り換えたプロジェクトもあります
機能のハイライト
新しいlockfileの形式(v6.0.0から)
今年最初の、そして最も重要な変更点の1つは、新しいpnpm-lock.yaml
形式でした。 これは破壊的変更だったので、v6をリリースする必要がありました。 しかし、これは成功でした。 いままでのlockfileでは、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 に指示することができます。
peerDependency issueのレポート機能の改善 (since v6.24.0)
peerDependenciesの問題は、以前はプレーンテキストで出力され、理解するのが困難でした。 現在は、すべてグループ化され、美しい階層構造で出力されます。
競合ツールの動向
Yarn
Yarnはv3.1からpnpmリンカを追加しました。 そのため、Yarnはpnpmが作成するものと同様のディレクトリ構造をもつnode_modulesを作成できます。
また、Yarnチームは、ディスク容量を効率的に使用できるように、コンテンツ・アドレス可能なストレージを実装する予定です。
npm
npmチームは、pnpmが採用しているシンボリックリンクによるnode_modulesのディレクトリ構造も採用することに決定しました。(関連する RFC).
その他
Zigで書かれたBunと Rustで書かれたVolt のふたつは、npm/Yarn/pnpm より高速と主張しています。 私はこれらの新しいパッケージマネージャーのベンチマークはまだ行っていません。
今後の計画
より速く、より良く、ベストを目指す