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

«В чем преимущество pnpm» — вопрос из категории Devops, который задают на 10% собеседований Frontend Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

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