Подтвердить что ты не робот

В чем разница между прямыми пакетами narn.lock и npm?

Я случайно побежал npm install в проекте, который использует пряжу, и заметил, что npm создал файл package-lock.json.

Я знаю, что пряжа популярна отчасти потому, что она использовала файл lockfile для создания более надежных и детерминированных установок зависимостей, чем npm, которые на некоторое время имели только искалеченный shrinkwrap feature, но теперь я не уверен, что делать с этим файлом npm lockfile и есть ли что-нибудь убедительное в продолжении использования пряжи.

Итак, в духе qaru.site/info/25785/..., я спрашиваю следующее:

  • Существуют ли существенные различия между двумя менеджерами пакетов с точки зрения надежности?
  • Если нет, есть ли веские причины продолжать использовать пряжу, кроме "More emojis. 🐈"?
4b9b3361

Ответ 1

На бумаге Yarn и NPM 5 выглядят почти эквивалентными. Оба они имеют детерминированные файлы блокировки и почти совместимы друг с другом по функциональности. Некоторые скажут, что пряжа была катализатором для инноваций НПМ.

Однако, после того, как я испытал NPM 5 в течение месяца, моя команда решила перейти к Yarn.

Технически NPM имеет "более детерминированный" файл блокировки, в котором есть теоретическая гарантия того, что в версиях NPM NPM будет создавать ту же самую папку node_modules. С другой стороны, прямая точность подъема/упорядочения зависимостей зависит от версии Yarn и может меняться в разных версиях пряжи. В общем, это очень мало влияет.

Зачем использовать пряжу? Слияние и надежность.

Пряжа сделала небольшой компромисс между детерминизмом, чтобы достичь гораздо более простого файла yarn.lock, который легче слить. Если вы являетесь сольным разработчиком, это, вероятно, не повлияет на вас, но если вы работаете в команде с несколькими сотрудниками, совершающими изменения зависимостей, это быстро становится огромной проблемой. НПМ package-lock практически не объединяется, и вы в конечном итоге должны генерировать или бороться. С другой стороны, с пряжей, слияния легко и предсказуемо.

Смотрите: https://yarnpkg.com/blog/2017/05/31/determinism/

В качестве побочного примечания мы также обнаружили, что пряжа более надежна в среднем.