Skip to main content

The year 2022 for pnpm

Β· 3 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)

Usage​

Download Stats​

My goal this year was to beat Lerna by the number of downloads. We were able to achieve this goal in August:

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

Docs visits​

We collect some unpersonalized stats from our docs using Google Analytics. In 2022, sometimes we had more than 20,000 unique visitors a week. This is 10 times more than in 2021!

GitHub stars​

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:

Feature Highlights​

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.