Перейти до основного змісту

Рік 2021 для pnpm

· 3 хв читання

Настає кінець року, і це був хороший рік для pnpm, тож погляньмо, як він пройшов.

Використання

Статистика завантажень

Моя мета цього року полягала в тому, щоб побити Bower за кількістю завантажень. Ми змогли досягти цієї мети в листопаді:

pnpm було завантажено приблизно в 3 рази більше у 2021 році, ніж у 2020 році:

нотатка

Ця статистика навіть не вимірює всі різні способи встановлення pnpm! Вона вимірює лише завантаження пакунка через pnpm npm. Цього року ми також додали скомпільовані бінарні версії pnpm, які постачаються по-різному.

Перегляд документації

Ми збираємо деякі неперсоналізовані статистичні дані з відвідування нашої документації за допомогою Google Analytics. У 2021 році ми іноді мали понад 2000 унікальних відвідувачів на тиждень.

Більшість наших користувачів зі Сполучених Штатів та Китаю.

Зірки на GitHub

Цього року наш головний репозиторій отримав +5000 зірок.

Нові користувачі

Наш найбільший новий користувач цього року – Bytedance(компанія, що стоїть за TikTok).

Крім того, багато чудових проєктів з відкритим кодом почали використовувати pnpm. Деякі перейшли на pnpm через чудову підтримку monorepos:

Деякі перейшли, тому що їм подобається, наскільки ефективним, швидким і красивим є pnpm:

Основні функції

Новий формат файлів блокування (з v6.0.0)

Однією з перших і найважливіших змін цього року став новий формат pnpm-lock.yaml. Це була кардинальна зміна, тому нам довелось випустити v6. Але це був успіх. Старий файл блокування (pnpm-lock.yaml) часто спричиняв Git конфлікти. З моменту введення нового формату ми не отримували жодних скарг щодо конфліктів Git.

Керування версіями Node.js (з v6.12.0)

Ми випустили нову команду (pnpm env), яка дозволяє керувати версіями Node.js. Тому ви можете використовувати pnpm замість менеджерів версій Node.js, таких як nvm або Volta.

Крім того, pnpm постачається як окремий виконуваний файл, тому ви можете запускати його навіть без Node.js, попередньо встановленого в системі.

Інʼєкції локальних залежностей (з v6.20.0)

Ви можете "зробити інʼєкцію" локальної залежності. Стандартно, локальні залежності є символьними посиланнями до node_modules, але з цією новою функцією ви можете змусити pnpm використовувати жорсткі посилання для файлів пакунка.

Покращено звітування про проблеми прямих залежностей (починаючи з v6.24.0)

Раніше проблеми прямих залежностей виводились у вигляді звичайного тексту і їх важко було зрозуміти. Тепер усі вони згруповані та виводяться у зручній ієрархічній структурі.

Змагання

Yarn

Yarn додав pnpm лінкувальник у v3.1. Отже, Yarn може створити структуру теки node_modules, подібну до тієї, яку створює pnpm.

Також команда Yarn планує впровадити адресоване за змістом сховище для більш ефективного використання дискового простору.

npm

Команда npm вирішила також прийняти структуру теки node_modules із символьними посиланнями, яку використовує pnpm (дивіться також RFC).

Інші

Bun, написаний на Zig та Volt, написаний на Rust, обидва стверджують, що вони швидші за npm/Yarn/pnpm. Я ще не тестував ці нові менеджери пакунків.

Майбутні плани

Швидше, якісніше, найкраще.