В чем разница между варевом, пряжей и нпм?
Я использовал 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 являются
- Установка пакетов с помощью пряжи распараллелена, поэтому установка пакетов происходит быстрее.
-
package.json может быть очень свободным с точки зрения номеров версий. yarn.lock (аналог npm shirkwrap) блокирует это, так что две машины с одинаковым package.json всегда устанавливают одинаковые пакеты.
-
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, которая проверяет
лицензия на все ваши модули зависимостей.