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)
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:
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!
Our main GitHub repository received almost +7,000 stars this year.
We had a lot of new and active contributors this year. These are the people the merge at least one PR in 2022:
- Zoltan Kochan
- Brandon Cheng
- Dominic Elm
- Homyee King
- Shinobu Hayashi
- Weyert de Boer
- Glen Whitney
- 子瞻 Luci
- Jon de la Motte
- Jack Works
- David Collins
- Igor Bezkrovnyi
- Lev Chelyadinov
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
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)
pnpm patch command have been added for patching dependencies in your
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.