В чем разница между brew, yarn и npm?

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

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

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

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

Я понимаю, что это полезно для программного обеспечения, как Атом или Код Visual Studio иметь свой собственный менеджер пакетов. Но для разработки я не вижу причины, по которой кто-то хотел бы использовать четыре разных менеджера пакетов (brew for 'primary software', yarn на npm пакеты, npm для бэкэнд-модулей и bower для интерфейсных библиотек). Как может этот пакет менеджер лес распутать?

4 ответов


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

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

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

пряжа имеет некоторые преимущества над НПМ, главные 2 скорость и предсказуемость. Yarn повторно использует пакет npm.JSON-файл и не меняет своей структуры. Поэтому вы можете запустить yarn install вместо npm install и теоретически все будет работать автоматически.

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


нити против НПМ

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

самые большие преимущества пряжи над НПМ

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

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

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


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

  • Улучшенная Безопасность
  • автономный режим
  • параллельная установка-так быстрая установка

еще одним важным отличием было пряжа.lock файл, но после npm ^5.X. x они обеспечивают пакета.замок.в JSON тоже.

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

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

# Installing all the dependencies of 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]

ссылки

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

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

и официальное объявление

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


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

Их главные пункты продажи являются следующими:

  • Безопасность С пряжа.lock файл (похож на NPM npm-shrinkwrap.в JSON) все зависимости заблокированы на точной версии. Итак, у вас нет этого"но он работает на моей машине" больше не борется. Каждый имеет тот же версии заблокированы в пряжа.lock
  • Speed Yarn использует (быстрые) прокси и (автономное) кэширование для доставки модули быстрее. Он также имеет проверку лицензии, которая проверяет лицензия всех ваших модулей зависимостей.