npm — это стандартный менеджер пакетов для Node.js. Однако Facebook уже некоторое время разрабатывает альтернативное решение для управления пакетами под названием Yarn . Yarn, похоже, постепенно исчезает из README GitHub в качестве решения по умолчанию, а статистика на официальном сайте показывает, что лишь небольшая часть установок пакетов выполняется с помощью Yarn. Тем не менее, стоит взглянуть на него шире, чем кажется на первый взгляд.
Yarn полностью совместим с существующими файлами package.json, поэтому вы можете легко использовать оба решения в существующих проектах. Команды для двух решений отличаются лишь незначительно. Ниже приведено сравнение наиболее важных команд.:
| Описание | npm | Пряжа |
| Инициализировать | npm init | пряжа init |
| Обновить | npm install -g npm | самообновление пряжи |
| Установить пакет | npm install --save [имя] | пряжа добавить [имя] |
| Установить пакет | npm install --save-dev [имя] | пряжа добавить --dev [имя] |
| Установить пакет глобально | npm install -g [имя] | пряжа global add [имя] |
| Установить все пакеты | npm install | пряжа установить |
| Обновить все пакеты | обновление npm | пряжа апгрейд |
| Удалить пакет | npm remove [имя] | пряжа удалить [имя] |
Yarn был разработан для устранения некоторых недостатков npm. Самое очевидное отличие — улучшенная производительность: инкрементальная установка, многопоточность и новейшая ключевая функция Plug'n'Play (PNP) значительно повышают производительность. Plug'n'Play устраняет необходимость в папке `node_modules`, привязанной к проекту, которая часто может разрастаться до астрономических размеров по количеству файлов. Более подробную информацию можно найти в официальном документе Plug'n'Play . Мы установим eslint сначала с помощью npm, а затем с помощью Yarn, каждый раз с предварительно прогретым кэшем, чтобы наглядно продемонстрировать разницу в скорости (в 6 раз!).:

