EMZETT.
Войти

pnpm и Yarn в сравнении с npm

Коротко: pnpm и Yarn — альтернативы npm как менеджеру пакетов для JavaScript. pnpm прежде всего экономит место и время, Yarn предлагает собственные рабочие пространства (workspaces) и Plug’n’Play.

Подробнее: Все три читают package.json, устанавливают из одного и того же реестра и создают файл блокировки, но различаются структурой папок.

Подробности

  • npm: Поставляется с Node.js. Кладёт пакеты плоско в node_modules, каждый проект получает свои копии.
  • pnpm: Хранит каждый пакет глобально лишь один раз и связывает жёсткими ссылками. Это экономит диск, ускоряет установки и предотвращает «фантомные зависимости», то есть импорты пакетов, которые вы не указывали.
  • Yarn: Классический (v1) похож на npm, современный (Berry) — с Plug’n’Play, который заменяет node_modules и загружает пакеты из архивов.
  • Файлы блокировки: package-lock.json, pnpm-lock.yaml, yarn.lock. См. lock-файлы.
  • Монорепозитории: Все три поддерживают workspaces. pnpm особенно популярен для этого.
  • Выбор: В существующих проектах оставаться на имеющемся инструменте, для новых pnpm — хороший вариант.

См. также: npm audit