В чем преимущество pnpm

Ответ

PNPM (Performant NPM) — это альтернативный менеджер пакетов для Node.js с ключевыми преимуществами:


  1. Экономия дискового пространства:

    Хранит зависимости в едином хранилище (hard links), избегая дублирования одинаковых пакетов в разных проектах. Например, если 10 проектов используют lodash@4.17.21, на диске будет только одна копия.



  2. Скорость установки:

    За счет кэширования и симлинков установка пакетов быстрее, чем в npm/yarn. Особенно заметно в монорепозиториях.



  3. Строгая изоляция зависимостей:

    По умолчанию запрещает доступ к неперечисленным в package.json пакетам (в отличие от npm/yarn, где возможен доступ к транзитивным зависимостям).


Пример сравнения структур:

# node_modules в npm/yarn (дублирование)
project1/node_modules/lodash
project2/node_modules/lodash

# pnpm (hard link в общее хранилище)
.pnpm-store/lodash@4.17.21
project1/node_modules/lodash -> .pnpm-store/lodash@4.17.21