Порівняння функцій
| Функція | pnpm | Yarn | npm | Примітки |
|---|---|---|---|---|
| Підтримка робочого простору | ✅ | ✅ | ✅ | |
Ізольовані node_modules | ✅ | ✅ | ✅ | Стандартно в pnpm. |
Підняті (Hoisted) node_modules | ✅ | ✅ | ✅ | Стандартно в npm. |
| Plug'n'Play | ✅ | ✅ | ❌ | Стандартно в Yarn. |
| [Автоматичне встановлення прямих залежностей] | ✅ | ❌ | ✅ | |
| Zero-Installs | ❌ | ✅ | ❌ | |
| Виправлення залежностей | ✅ | ✅ | ❌ | |
| Керування версіями Node.js | ✅ | ❌ | ❌ | |
| Managing versions of itself | ✅ | ✅ | ❌ | |
| Має файл блокування (lockfile) | ✅ | ✅ | ✅ | pnpm-lock.yaml, yarn.lock, package-lock.json. |
| Замінює підтримку | ✅ | ✅ | ✅ | Відоме як «резолюції» в Yarn. |
| Сховище з адресацією вмісту | ✅ | ✅ | ❌ | Yarn використовує CAS, коли для nodeLinker встановлено значення pnpm. |
| Динамічний запуск пакунків | ✅ | ✅ | ✅ | pnpm dlx, yarn dlx, npx. |
| Кеш побічних ефектів (Side-effects cache) | ✅ | ❌ | ❌ | |
| Каталоги | ✅ | ❌ | ❌ | |
| Конфігураційні залежності | ✅ | ❌ | ❌ | |
| Підтримка реєстру JSR | ✅ | ✅ | ❌ | |
| Автоматична інсталяція перед запуском скрипта | ✅ | ❌ | ❌ | В Yarn, Plug'n'Play гарантує, що залежності завжди в актуальному стані. |
| Хуки | ✅ | ✅ | ❌ | |
| Список ліцензій | ✅ | ✅ | ❌ | pnpm підтримує це через pnpm licenses list. Yarn має для нього втулок. |
Примітка: Щоб порівняння було лаконічним, ми включаємо лише функції, які можуть часто використовуватися.