跳至主要內容

The year 2022 for pnpm

· One min read

It is the end of the year. A really hard year. As you may know, I live in Ukraine, so due to Russia's war against us, it was harder to lead this project than in previous years. Nevertheless, it was a good year for pnpm. We've got a lot of new users, contributors, and we have implemented many great features.

(the above illustration was generated by Midjourney. The tiger symolizes the year of the tiger)

使用方法

下載統計

我今年的目標是在下載量上擊敗Lerna。 We were able to achieve this goal in August:

pnpm was downloaded more than 5 times more in 2022 than in 2021:

訪問Docs統計

我們從 Google 分析收集了一些訪問 docs 的客觀的數據。 In 2022, sometimes we had more than 20,000 unique visitors a week. This is 10 times more than in 2021!

GitHub上的星星統計

Our main GitHub repository received almost +7,000 stars this year.

Our contributors

We had a lot of new and active contributors this year. These are the people the merge at least one PR in 2022:

特色功能

Supporting a symlinkless hoisted node_modules (since v6.25.0)

Right at the beginning of 2022, we have added support for the "traditional" hoisted (a.k.a flat node_modules). We use Yarn's hoisting algorithm to create a proper hoisted node_modules. This new setting has basically made pnpm compatible with all Node.js stack that are compatible with npm CLI.

To use the hoisted node_modules directory structure, use the node-linker=hoisted setting in an .npmrc file.

Side effects cache (since v7.0.0)

Since v7, side-effect-cache is enabled by default, so dependencies that should be built are only built once on a machine. This improves installation speed by a lot in projects that have dependencies with build scripts.

Dependencies patching (since v7.4.0)

The pnpm patch command have been added for patching dependencies in your node_modules.

Time-based resolution strategy (since v7.10.0)

A new resolution mode was added to pnpm, which should make updating dependencies more secure. You can change the resolution mode with the resolution-mode setting.

Listing licenses of dependencies (since v7.17.0)

You may now use the pnpm licenses list command to check the licenses of the installed packages.