本文へスキップ

pnpmにとっての2022年

·読み時間3分

年が終わりました。本当に大変な年でした。ご存知かもしれませんが、私はウクライナに住んでおり、ロシアによるウクライナ侵攻のため、このプロジェクトを率いることは前年よりも困難でした。それにもかかわらず、pnpmにとって良い年でした。多くの新規ユーザーとコントリビューターを獲得し、多くの素晴らしい機能を実装しました。

(上のイラストはMidjourneyによって生成されました。トラは寅年を表しています)

使用方法

ダウンロード統計

今年の私の目標は、ダウンロード数でLernaを上回ることでした。この目標は8月に達成することができました。

2022年のpnpmのダウンロード数は、2021年と比べて5倍以上でした。

ドキュメント閲覧数

Google Analyticsを使用して、ドキュメントから非個人化された統計情報を収集しています。2022年には、週に20,000人を超えるユニークビジターが訪れることもありました。これは2021年の10倍以上です!

GitHubスター

私たちのメインのGitHubリポジトリは、今年約7,000個のスターを獲得しました。

コントリビューター

今年は多くの新規およびアクティブなコントリビューターがいました。これらは2022年に少なくとも1つのPRをマージした人たちです。

主な機能

シンボリックリンクを使用しないホイスティングされたnode_modulesのサポート(v6.25.0以降)

2022年の初めに、「従来の」ホイスティングされた(別名フラットnode_modules)のサポートを追加しました。Yarnのホイスティングアルゴリズムを使用して、適切にホイスティングされたnode_modulesを作成します。この新しい設定により、基本的にpnpmはnpm CLIと互換性のあるすべてのNode.jsスタックと互換性を持つようになりました。

ホイスティングされたnode_modulesディレクトリ構造を使用するには、.npmrcファイルでnode-linker=hoisted設定を使用します。

副作用キャッシュ(v7.0.0以降)

v7以降、副作用キャッシュがデフォルトで有効になっているため、ビルドする必要がある依存関係はマシン上で一度だけビルドされます。これにより、ビルドスクリプトを持つ依存関係があるプロジェクトのインストール速度が大幅に向上します。

依存関係のパッチ適用(v7.4.0以降)

pnpm patchコマンドが追加され、node_modules内の依存関係にパッチを適用できるようになりました。

時間ベースの解決戦略(v7.10.0以降)

pnpmに新しい解決モードが追加され、依存関係の更新をより安全に行えるようになりました。resolution-mode設定で解決モードを変更できます。

依存関係のライセンス一覧表示(v7.17.0以降)

pnpm licenses listコマンドを使用して、インストールされたパッケージのライセンスを確認できるようになりました。