Порівняння функцій
Функція | pnpm | Yarn | npm | Примітки |
---|---|---|---|---|
Підтримка робочого простору | ✅ | ✅ | ✅ | |
Ізольований node_modules | ✅ | ✅ | ✅ | Стандартно в pnpm. |
Піднятий (Hoisted) node_modules | ✅ | ✅ | ✅ | Стандартно в npm. |
Plug'n'Play | ✅ | ✅ | ❌ | Стандартно в Yarn. |
Автоматичне встановлення прямих залежностей | ✅ | ❌ | ✅ | |
Zero-Installs | ❌ | ✅ | ❌ | |
Виправлення залежностей | ✅ | ✅ | ❌ | |
Керування версіями Node.js | ✅ | ❌ | ❌ | |
Керування власними версіями | ✅ | ✅ | ❌ | |
Має файл блокування (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 має для нього втулок. |
Примітка: Щоб порівняння було лаконічним, ми включаємо лише функції, які можуть часто використовуватися.