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

2021 год для pnpm

· 3 мин. читать

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

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

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

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

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

заметка

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

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

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

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

Звезды на GitHub

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

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

Наш самый большой новый пользователь в этом году - Bytedance (компания, стоящая за 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. Я еще не замерял производительность этих пакетных менеджеров.

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

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