В чем разница между варевом, пряжей и нпм?

Я использовал react-native, который я установил глобально с помощью npm. Теперь он говорит в первой строке после выполнения команды init. Следующие:

Installing react-native from npm...
Consider installing yarn to make this faster: https://yarnpkg.com

Поэтому я проверял этот веб-сайт, и он выглядел мне интересно, но я точно не знаю, что это будет. Сначала я подумал, что для установки yarn мне понадобится brew, поэтому я мог бы использовать пряжу для установки npm. Но теперь я думаю, что yarn является заменой npm. Это правильное утверждение?

Почему я хотел бы иметь так много менеджеров пакетов?

Я понимаю, что для таких программ, как Atom или Visual Studio Code, полезно иметь собственный менеджер пакетов. Но для развития, я не видим причины, почему кто - то хотели бы использовать четыре различных менеджер пакетов (отвар для "основного программного обеспечения", yarn для npm пакетов, НУЮ для внутренних модулей и беседки для интерфейсных библиотек). Как можно распутать этот лес менеджера пакетов?

Ответ 1

Я не знаком с brew, но, полагаю, вы имеете в виду систему управления пакетами программного обеспечения Homebrew для macOS.

Тогда целью каждой системы является:

  • brew: установка программного обеспечения, то есть готового к использованию приложений типа wget.
  • npm: установка пакетов (библиотек), т.е. части функциональных возможностей, которые помогут вам создавать собственные приложения.
  • пряжа: также установка пакетов.

Пряжа имеет некоторые преимущества перед npm, основными из которых являются скорость и предсказуемость. Пряжа повторно использует файл npm package.json и не меняет его структуру. Поэтому вы можете запускать yarn install вместо npm install, и теоретически все будет работать автоматически.

P.S. Я согласен, https://yarnpkg.com не имеет достаточного фона для того, почему, черт возьми, нам нужна другая система управления пакетами, но есть отличная статья, которая заполняет этот пробел.

Ответ 2

пряжа против нпм

yarn и npm - оба управляют установкой модуля и зависимостями. Пряжа была построена для устранения некоторых недостатков npm.

Самые большие преимущества пряжи над Npm являются

  1. Установка пакетов с помощью пряжи распараллелена, поэтому установка пакетов происходит быстрее.
  2. package.json может быть очень свободным с точки зрения номеров версий. yarn.lock (аналог npm shirkwrap) блокирует это, так что две машины с одинаковым package.json всегда устанавливают одинаковые пакеты.

  3. yarn позволяет проверить, почему установлены некоторые пакеты (понять дерево зависимостей)

Ссылка: https://www.sitepoint.com/yarn-vs-npm/

Ответ 3

Yarn - менеджер пакетов JavaScript, созданный Facebook, Google, Exponent и Tilde. Он создан для удаления или преодоления функций, которые отсутствуют в npm. По сравнению с нпм он имеет

  • Усиленная безопасность
  • Автономный режим
  • Параллельная установка - следовательно, более быстрая установка

Другим существенным отличием был файл yarn.lock, но после npm ^5.xx они также предоставляют файл package-lock.json.

И команды пряжи работают как npm:

# Starting a new project
npm init === yarn init

# Installing all the dependencies of the project
npm install === yarn or yarn install

# Adding a dependency
npm install [package] === yarn add [package] # The package is saved to your package.json immediately.
npm install  [package]@[version] === yarn add [package]@[version]
npm install [package]@[tag] === yarn add [package]@[tag]

# Add a dev dependency
npm install [package] --save-dev === yarn add [package] --dev

# Upgrading a dependency
npm update [package] === yarn upgrade [package]
npm update [package]@[version] === yarn upgrade [package]@[version]
npm update [package]@[tag] === yarn upgrade [package]@[tag]

# Removing a dependency
npm uninstall [package] === yarn remove [package]

# View registry information
npm view [package] === yarn info [package]

# List installed packages
npm list === yarn list
npm list --depth === yarn list --depth=0

# Install packages globally
npm install -g [package] === yarn global addb [package]

# Run a defined package script
npm run [script] === yarn run [script]

Refferences

https://www.sitepoint.com/yarn-vs-npm/

https://scotch.io/@brian_kimo/npm-vs-yarn

и официальный анонс

https://code.facebook.com/posts/1840075619545360

Ответ 4

Пряжа, как NPM, менеджер пакетов для Node.JS. Пряжа построена Facebook. Это быстрее и имеет больше возможностей, чем NPM. Их основными торговыми точками являются:

  • Безопасность Файл yarn.lock (аналогичен NPM npm-shrinkwrap.json) все зависимости блокируются на точной версии. Таким образом, у вас больше нет " но он работает на моей машине". У каждого есть те же версии, заблокированные в файле yarn.lock
  • Speed ​​Yarn использует (быстрые) прокси и (автономное) кэширование для доставки ваших модули быстрее. У него также есть контрольная сумма LICENSE, которая проверяет лицензия на все ваши модули зависимостей.