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