Перейти к основному содержимому

2021 год для pnpm

· 4 мин. чтения
Zoltan Kochan
Lead maintainer of pnpm

Уже конец года, и он был хорошим для pnpm, так что давайте посмотрим каким он был.

Использование​

Статистика скачиваний​

Моей целью на этот год было победить Bower по количеству скачиваний. И мы достигли этой цели в ноябре:

pnpm был скачан примерно в 3 раза больше в 2021, чем в 2020:

примечание

Эта статистика даже не измеряет все возможные способы установки pnpm! Она измеряет только количество загрузок npm пакета pnpm. В этом году мы так-же добавили исполняемые файлы pmpm, которые скачиваются иначе.

Посещения документации​

Мы собираем некоторую обезличенную статистику из нашей документации с помощью Google Analytics. В 2021 году, иногда у нас было более 2000 уникальных посетителей в неделю.

Большинство наших пользователей из США и Китая.

Звезды на GitHub​

Наш основной репозиторий на GitHub получил +5000 звезд в этом году.

Новые пользователи​

Our biggest new user this year is Bytedance (the company behind TikTok).

Кроме того, многие замечательные проекты с открытым исходным кодом начали использовать pnpm. Некоторые перешли на pnpm из-за хорошей поддержки монорепозиториев:

Некоторые переключились, потому что им нравится, насколько эффективный, быстрый и красивый pnpm:

Feature Highlights​

New lockfile format (since v6.0.0)​

One of the first and most important changes this year was the new pnpm-lock.yaml format. This was a breaking change, so we had to release v6. But it was a success. The old lockfile was causing Git conflicts frequently. Since the new format was introduced, we did not receive any complaints about Git conflicts.

Managing Node.js versions (since v6.12.0)​

We shipped a new command (pnpm env) that allows to manage Node.js versions. So you may use pnpm instead of Node.js version managers like nvm or Volta.

Also, pnpm is shipped as a standalone executable, so you can run it even with no Node.js preinstalled on the system.

Injecting local dependencies (since v6.20.0)​

You may "inject" a local dependency. By default, local dependencies are symlinked to node_modules but with this new feature you may instruct pnpm to hard link the files of the package instead.

Improved reporting of peer dependency issues (since v6.24.0)​

Peer dependency issues used to be printed as plain text and it was hard to understand them. They are now all grouped and printed in a nice hierarchy structure.

Конкуренция​

Yarn​

Yarn added a pnpm linker in v3.1. So Yarn can create a similar node-modules directory structure to the one that pnpm creates.

Also, the Yarn team plans to implement a content-addressable storage to be more disk space efficient.

npm​

The npm team decided to also adopt the symlinked node-modules directory structure that pnpm uses (related RFC).

Другие​

Оба Bun, написанный на Zig, и Volt, написанный на Rust, говорять что они быстрее чем npm/Yarn/pnpm. Я еще не замерял производительность этих пакетных менеджеров.

Планы на будущее​

Быстрее, лучше, лучший.