我正在使用react-native
包,我在全球范围内使用npm
安装。现在它在执行init
命令后的第一行说。下列:
Installing react-native from npm...
Consider installing yarn to make this faster: https://yarnpkg.com
所以我正在检查那个网站,它看起来很有趣,但我不知道它会是什么。起初,我认为我需要brew
安装yarn
,所以我可以纱线安装npm
。但现在我认为yarn
是npm
的替代品。这是正确的陈述吗?
为什么我要拥有这么多包管理器?
我知道像Atom或Visual Studio Code这样的软件有自己的包管理器很有用。但是对于开发,我没有看到为什么有人想要使用四个不同的包管理器(brew为'主要软件',yarn
用于npm
包,npm用于后端模块和bower用于前端库)的原因。如何解决这个包管理器森林?
我不熟悉brew,但我想你的意思是用于macOS的Homebrew软件包管理系统。
那么每个系统的目的是:
纱线比npm有一些优势,主要有两个是速度和可预测性。 Yarn重用了npm的package.json文件,并没有改变它的结构。因此,你可以运行yarn install
而不是npm install
,理论上一切都会自动运行。
附:我同意,https://yarnpkg.com没有足够的背景知道为什么我们需要另一个包裹管理系统,但there is a great article填补了这个空白。
纱线vs npm
yarn和npm都是管理模块安装和依赖项。纱线的建立是为了解决npm的一些缺点。
纱线在npm上的最大优点是
yarn
允许您检查为什么安装了一些软件包(了解依赖树)Yarn是由Facebook,Google,Exponent和Tilde构建的JavaScript包管理器。创建它是为了删除或克服npm中缺少的功能。与npm相比,它有
另一个主要区别是yarn.lock文件,但在npm ^5.x.x
之后,它们也提供了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]
参考
https://www.sitepoint.com/yarn-vs-npm/
https://scotch.io/@brian_kimo/npm-vs-yarn
和官方公告
与NPM一样,Yarn是Node.JS的包管理器。纱线由Facebook建造。它比NPM更快,功能更多。 他们的主要卖点是: