npm – це стандартний менеджер пакетів для Node.js. Однак Facebook вже деякий час розробляє альтернативне рішення для керування пакетами під назвою Yarn . Здається, Yarn поступово зникає з README GitHub як рішення за замовчуванням, а статистика на офіційному сайті показує, що лише частина встановлень пакетів виконується за допомогою Yarn. Тим не менш, варто поглянути не лише на очевидне.
Yarn повністю сумісний з існуючими файлами package.json, тому ви можете легко використовувати обидва рішення в існуючих проектах. Команди для двох рішень відрізняються лише незначно. Нижче наведено порівняння найважливіших команд.:
| Опис | нм | Пряжа |
| Ініціалізувати | npm init | пряжа ініція |
| Оновлення | npm встановити -g npm | самообновлення пряжі |
| Встановити пакет | npm встановити --save [ім'я] | пряжа додати [ім'я] |
| Встановити пакет | npm встановити --save-dev [ім'я] | пряжа додати --dev [ім'я] |
| Встановіть пакет глобально | npm встановити -g [ім'я] | пряжа глобальне додавання [ім’я] |
| Встановіть усі пакунки | npm встановити | встановити пряжу |
| Оновіть всі пакети | npm оновлення | оновлення пряжі |
| Видаліть пакет | npm видалити [ім'я] | пряжа видалити [назва] |
Yarn був розроблений для усунення деяких слабких сторін npm. Найбільш очевидною відмінністю є його покращена продуктивність: інкрементальні встановлення, багатопоточність та найновіша вбивча функція Plug'n'Play (PNP) значно підвищують продуктивність. Plug'n'Play усуває необхідність у папці `node_modules` на основі проекту, кількість файлів якої часто може зростати до астрономічних розмірів . Більше інформації можна знайти в офіційному документі Plug'n'Play . Ми встановимо eslint один раз з npm, а потім з Yarn, кожен раз з прогрітим кешем, щоб чітко продемонструвати різницю в швидкості (6x!).:

