Ответ
Оба инструмента хороши, но выбор зависит от контекста:
NPM (по умолчанию с Node.js):
- Быстрее в последних версиях (начиная с npm@5)
- Лучше для маленьких проектов
- Проще для начинающих
Yarn:
- Более стабильный lock-файл (
yarn.lockстрожеpackage-lock.json) - Параллельная загрузка пакетов (быстрее в больших проектах)
- Оффлайн-кэш (можно работать без интернета)
Пример установки пакета:
# NPM
npm install lodash
# Yarn
yarn add lodash
Сейчас разница минимальна. Лично я выбираю yarn для больших проектов, npm — для быстрых прототипов. В 2024 году можно использовать любой — главное быть консистентным в проекте.
Ответ 18+ 🔞
А, слушай, вот этот вечный спор — npm или yarn, как выбор между водкой и пивом, блядь. Оба, в принципе, годные, но всё зависит от того, с какого бодуна ты проснулся и что собираешься делать.
NPM (он уже в комплекте с Node.js, как геморрой с возрастом):
- В последних версиях разогнали, теперь он довольно шустрый, не то что раньше, этот увалень.
- Для мелких проектов, где надо быстро набросать — самое то, не надо мозги парить.
- Новичкам проще, потому что он уже есть, хуле.
Yarn:
- У него lock-файл (
yarn.lock) — это такой строгий охранник, который следит, чтобы версии пакетов не разъебались в разные стороны. У npm'а егоpackage-lock.jsonиногда ведёт себя как пьяный сторож. - Качает пакеты параллельно, поэтому на больших проектах, где зависимостей — овердохуища, может быть быстрее.
- Умеет работать из своего кэша, если интернет сдох — просто пиздец какая полезная фича.
Как обычно ставят какую-нибудь хуйню:
# NPM
npm install lodash
# Yarn
yarn add lodash
Если честно, сейчас они друг на друга так похожи, что разница — хуй с горы. Я лично yarn юзаю, когда проект большой и серьёзный, чтобы не было сюрпризов. А npm — когда надо что-то на коленке запилить, в рот меня чих-пых. Главное, чувак, в одном проекте не мешай их, а то получится каша, и потом будешь сидеть и ебаться с конфликтами. В 2024 году бери любой, они оба уже не те убогие, что раньше.