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