brew、yarn和npm有什么区别?

x759pob2  于 2023-05-23  发布在  Yarn
关注(0)|答案(4)|浏览(354)

我使用的是react-native包,它是我在npm中全局安装的。现在它在执行init命令后的第一行显示。以下:

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

所以我在看那个网站,它看起来很有趣,但我不知道它会是什么。一开始,我以为我需要brew来安装yarn,所以我可以用yarn来安装npm。但是现在我认为yarnnpm的替代品。这是正确的说法吗?
为什么我想要这么多的包管理器?
我理解像AtomVisual Studio Code这样的软件拥有自己的包管理器是很有用的。但是对于开发,我不明白为什么有人会喜欢使用四种不同的包管理器(brew用于“主要软件”,yarn用于npm包,npm用于后端模块,bower用于前端库)。如何才能解开这个包管理器森林?

3df52oht

3df52oht1#

我不熟悉brew,但我想你指的是macOS的Homebrew软件包管理系统。
那么每个系统的目的是:
1.brew:安装软件,即准备好使用像wget这样的应用程序。
1.npm:安装包(库),即帮助您构建自己的应用程序。
1.yarn:也安装包。
Yarn比npm有一些优势,主要的两个是速度和可预测性。Yarn重用npm的package.json文件,并且不改变其结构。因此,您可以运行yarn install而不是npm install,理论上一切都会自动工作。
P.S.我同意,https://yarnpkg.com没有足够的背景说明为什么我们需要另一个包管理系统,但是there is a great article填补了这个空白。

vawmfj5a

vawmfj5a2#

yarn vs npm

yarn和npm都是管理模块安装和依赖关系的。Yarn是为了解决npm的一些缺点而构建的。
Yarn相对于NPM的最大优势是
1.使用yarn安装包是并行的,因此包安装速度更快。
1.package.json在版本号方面可以非常宽松。yarn.lock(类似于npm shirkwrap)将其锁定,以便具有相同package.json的两台机器总是安装完全相同的包。

  1. yarn允许您检查为什么安装了某些软件包(了解依赖关系树)
    参考:https://www.sitepoint.com/yarn-vs-npm/
p8h8hvxi

p8h8hvxi3#

Yarn是一个由Facebook、Google、Exponent和Tilde构建的JavaScript包管理器。它的创建是为了消除或克服npm中缺乏的功能。与npm相比,它具有

  • 增强的安全性
  • 离线模式
  • 并行安装-因此,安装速度更快

另一个主要区别是yarn.lock文件,但在npm ^5.x.x之后,他们也提供了package-lock.json文件。
yarn的命令类似于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://web.archive.org/web/20211107145442/https://scotch.io/@brian_kimo/npm-vs-yarn
官方宣布
https://engineering.fb.com/2016/10/11/web/yarn-a-new-package-manager-for-javascript/

5anewei6

5anewei64#

Yarn类似于NPM,是Node.JS的包管理器。Yarn由Facebook创建。它比NPM更快,功能更多。

他们的主要卖点是:

  • 使用yarn.lock文件(类似于NPM的npm-shrinkwrap.json),所有依赖项都锁定在确切的版本上。所以,你不再有“但它在我的机器上工作”的挣扎。每个人都有相同的版本锁定在yarn.lock文件中
  • Speed Yarn使用(快速)代理和(离线)缓存来更快地交付您的模块。它也有一个LICENSE检查器,可以检查所有依赖模块的许可证。

相关问题