零、文章目录
Nodejs八、Yarn
1、介绍
- Yarn是一个用于管理JavaScript包依赖关系的工具。它是由Facebook开发并开源的,旨在解决npm(Node Package Manager)的一些性能和安全性问题。
- Yarn提供了更快速、可靠的依赖项安装过程,并通过使用本地缓存来减少网络请求次数。它还引入了锁定文件(lockfile)的概念,以确保每个项目都使用相同版本的依赖项,从而避免了不确定性和构建错误。
- 以下是Yarn的一些主要特点:
- 快速:Yarn利用并行下载和本地缓存等功能,使得依赖项的安装速度更快。
- 安全:Yarn使用SHA-1哈希值来验证每个下载的软件包的完整性,以确保其未被篡改。
- 稳定:Yarn使用锁定文件(yarn.lock)来记录精确的依赖项版本,以确保团队成员之间的一致性。
- 可重复性:通过锁定文件,Yarn可以确保在不同环境中使用相同的依赖项版本,从而消除了构建过程中的意外变化。
- 支持多仓库:Yarn支持同时从多个软件包仓库获取依赖项,这样您就可以选择最适合您项目需求的软件包源。
- 官网:https://yarnpkg.com/
- 中文官网:https://www.yarnpkg.cn/
2、安装
- 安装Yarn
npm install -g yarn
- 验证Yarn是否成功安装,如果显示了Yarn的版本号,则表示安装成功。
yarn --version
3、常用命令
-
yarn init
:初始化一个新的项目,并生成一个package.json
文件。 -
yarn install
:安装项目的所有依赖项。Yarn会根据项目中的package.json
文件自动解析并安装所需的依赖项。 -
yarn add <package>
:安装指定的包,并将其添加到项目的依赖项中。例如,yarn add react
将安装React库并将其添加到项目的依赖项中。 -
yarn remove <package>
:从项目的依赖项中移除指定的包。例如,yarn remove lodash
将从项目中移除Lodash库。 -
yarn upgrade
:升级项目的所有依赖项到最新版本。 -
yarn upgrade <package>
:升级指定的包到最新版本。 -
yarn list
:列出项目当前安装的所有依赖项。 -
yarn run <script>
:运行在package.json
文件中定义的脚本命令。例如,如果在scripts
部分定义了一个名为start
的脚本,可以使用yarn run start
来运行它。 -
yarn --help
来查看完整的命令列表和帮助信息。
4、npm和Yarn比较
- 性能: Yarn在依赖项安装过程中通常比npm更快速、可靠。它使用并行下载和缓存机制来提高效率,并且可以更好地处理复杂的依赖关系。
- 安全性: Yarn通过默认启用校验和验证所有下载的软件包,以确保其完整性和安全性。这有助于防止恶意软件包的注入。
- 版本控制: Yarn允许您锁定项目的依赖项版本,以确保团队成员之间的一致性。这对于构建可重现的环境非常有用。
- 用户界面: Yarn提供了一个交互式的命令行界面,使得操作更加直观和易用。它显示了正在进行的操作进度,并提供了有用的错误消息。
- 生态系统: npm是JavaScript生态系统的标准工具,拥有庞大的包仓库(npm registry)。虽然Yarn也可以使用npm仓库,但npm仍然是最广泛使用的包管理器。
5、npm和Yarn常用命令比较
-
安装依赖项:
- npm:
npm install
或npm i
- Yarn:
yarn install
- npm:
-
全局安装包:
- npm:
npm install -g <package>
- Yarn:
yarn global add <package>
- npm:
-
本地安装包:
- npm:
npm install <package>
- Yarn:
yarn add <package>
- npm:
-
卸载包:
- npm:
npm uninstall <package>
- Yarn:
yarn remove <package>
- npm:
-
更新包:
- npm:
npm update <package>
或npm update
- Yarn:
yarn upgrade <package>
或yarn upgrade
- npm:
-
运行脚本:
- npm:
npm run <script>
- Yarn:
yarn run <script>
- npm:
-
查看已安装的包:
- npm:
npm ls
- Yarn:
yarn list
- npm:
-
查看特定包的信息:
- npm:
npm show <package>
- Yarn:
yarn info <package>
- npm:
-
清除缓存:
- npm:
npm cache clean
- Yarn:
yarn cache clean
- npm:
-
查看帮助:
-
npm:
npm help
-
Yarn:
yarn help
-