📜  npm 和 yarn 的区别(1)

📅  最后修改于: 2023-12-03 15:33:13.250000             🧑  作者: Mango

npm 和 yarn 的区别

Node.js 是一个非常流行的 JavaScript 运行环境,有许多工具可用于管理包依赖项。两个最受欢迎的是 npm 和 yarn。这两个工具都可以管理 JavaScript 应用程序的依赖关系并使其更可靠和可重复性。在本文中,我们将比较 npm 和 yarn,并介绍它们之间的差异。

什么是 npm?

npm 是一个基于命令行的包管理器,其全称是 Node Package Manager。它是 Node.js 默认的包管理器,可管理 Node.js 应用程序的所有包。npm 具有以下优点:

  • 社区支持广泛
  • 可使用 npm 生态系统中的数千个第三方包
  • npm 将项目的全部依赖关系安装在 node_modules 目录下
  • npm 于 2009 年首次推出,已经成为一个成熟的、经过实践证明的工具。
什么是 yarn?

Yarn 是 Facebook 于 2016 年推出的包管理器。它基于 npm 库,并为最终用户提供了一个更友好的安装体验。Yarn 具有以下优点:

  • 速度更快(可通过并行和缓存进行优化)
  • 安装依赖项时更可靠
  • 可通过 yarn.lock 文件来确保依赖项版本控制
  • 可取消安装过程
  • 可限制依赖项更新
  • 清晰的输出消息,便于进行故障排除
npm 和 yarn 之间的区别

虽然 npm 和 yarn 二者都可用于管理 JavaScript 应用程序的依赖项,但它们存在许多明显的差异。下面是两种工具的比较。

安装依赖项

Yarn 通过单个命令安装所有依赖项:

yarn

但 npm 需要安装它们一次:

npm install
缓存

npm 将每个包的 tarball 存储在全局缓存目录中,并将其解压缩用于项目。这会使缓存变得不可预测。

Yarn 会将所有缓存存储在项目目录下的多个缓存目录中。这使其更可靠和可预测。

并行安装

从命令行输入安装命令时,Yarn 会并行安装依赖项。npm 没有默认情况下在并行安装(至少 npm 5.0 之前)。

包创建

在 npm 中,包的创建方式相对简单。只需输入以下命令,即可创建新的 NPM 包:

npm init

Yarn 不包含创建新包的命令。相反,需要手动创建一个 package.json 文件并填充其属性。

单个命令的全局安装

在 npm 中,单个命令即可安装全局依赖项:

npm install -g <package>

但在 Yarn 中,需要使用以下两个命令:

yarn global add <package>
安装可选和开发依赖项

npm 和 Yarn 都支持安装可选和开发依赖。

在 npm 中,安装可选依赖项时,需要使用:

npm install --save-optional <package>

在 Yarn 中,可选依赖项被视为另一种类型,并使用以下命令进行安装:

yarn add --optional <package>

同样,开发依赖项在 npm 和 yarn 中都使用不同的命令。

总结

你应该使用哪个工具依赖于你的特定用例。如果速度和稳定性对您来说很重要,则应该选择 Yarn。如果您使用的是比较简单的项目或您喜欢使用 npm 但希望使用一些其他的功能,则应使用 npm。无论您选择哪个工具,包管理器都是一种重要的工具,可使您的项目变得更可靠和可维护。