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