npm — менеджер пакетов по умолчанию для Node.js. Facebook уже давно разрабатывает альтернативное решение для управления пакетами под названием Yarn . Yarn, похоже, постепенно исчезает из файлов чтения 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 с прогретым кешем в каждом случае, чтобы разница в скорости была очевидна (6x!):

