目录
Yarn简介
历史背景
Yarn 作为一个包管理器,最初是由 Facebook 在 2016 年 3 月发布的。它的诞生主要是为了解决 npm(Node Package Manager)在大规模项目和组织中遇到的一些性能和可靠性问题。随着 JavaScript 生态系统的迅速增长,npm 成为了最流行的包管理器之一,但在处理大型项目或在缓慢的网络环境下,npm 的安装速度和一致性成为了瓶颈。
与npm的区别
Yarn 和 npm 在功能上有许多相似之处,因为它们都是用于管理 JavaScript 项目依赖的工具,但是 Yarn 在设计上做了几个关键的改进:
- 并行安装:Yarn 支持并行安装依赖,这意味着它可以在同一时间安装多个包,显著加快了安装速度。
- 确定性安装:Yarn 引入了 yarn.lock 文件,确保在任何地方安装的依赖都是一致的,解决了 npm 中由于版本差异导致的不一致问题。
- 离线模式:Yarn 会缓存已安装的包,因此即使在网络不稳定的情况下,也可以快速地从本地缓存中安装依赖。
- 更快的恢复:Yarn 的恢复速度比 npm 快,因为它可以跳过已经安装的包,只安装那些尚未安装的。
- 更好的用户体验:Yarn 提供了更详细的命令行输出,以及一些额外的命令,如 yarn why 和 yarn outdated,帮助开发者更好地理解和管理他们的依赖。
核心特性与优势
- 性能:Yarn 的并行安装和缓存机制极大地提升了安装速度,特别是在大型项目中表现突出。
- 一致性:通过 yarn.lock 文件,Yarn 确保了所有开发者在任何环境下的依赖安装结果都相同,避免了版本混乱的问题。
- 离线模式:即使没有网络连接,Yarn 也能从本地缓存中恢复和安装依赖。
- 可预测性:Yarn 的安装过程是可预测的,这有助于避免由于依赖版本差异导致的生产环境和开发环境之间的差异。
- 易用性:Yarn 的命令行界面设计得更加直观,提供了丰富的命令和选项,帮助开发者更高效地管理项目。
- 兼容性:Yarn 兼容 npm 的 package.json 文件,意味着现有的 npm 项目可以无缝迁移到 Yarn。
安装与配置
安装 Yarn
1. 通过 npm 安装
对于大多数用户来说,最简单的方式是通过 npm 来安装 Yarn。首先,确保你的系统上已经安装了 Node.js 和 npm。然后,打开终端或命令行工具,运行以下命令:
npm install -g yarn
这将全局安装 Yarn。安装完成后,可以通过运行 yarn --version
来验证是否成功安装。
2. 通过其他方式安装
如果你的系统中没有 npm 或者出于某些原因无法使用 npm,还可以通过以下方式安装 Yarn:
- 直接下载二进制文件:访问 Yarn 的 GitHub 仓库或官方网站,下载适用于你操作系统的二进制文件,然后手动安装。
- 使用包管理器:在 Linux 系统上,可以使用 APT、YUM 或其他包管理器来安装 Yarn。
- Docker 容器:如果是在 Docker 环境下,可以直接在 Dockerfile 中添加 RUN npm install -g yarn 来安装。
配置 Yarn
1. 配置全局路径
默认情况下,Yarn 会将全局包安装在 /usr/local/lib/node_modules
目录下(在 macOS 和 Linux 上)。如果你的系统不允许普通用户写入这个目录,或者你希望自定义全局包的安装位置,可以修改 .yarnrc
文件。
创建或编辑用户主目录下的 .yarnrc
文件,添加以下内容:
globalFolder: "/path/to/your/custom/global/folder"
2. 配置缓存目录
Yarn 默认会将缓存的包放在 /Users/<username>/.yarn
目录下(在 macOS 和 Linux 上)。如果你想改变缓存的位置,同样在 .yarnrc
文件中进行配置:
cacheFolder: "/path/to/your/custom/cache/folder"
3. 配置镜像源
如果你所在的网络环境访问 npm 仓库速度较慢,可以配置 Yarn 使用国内的镜像源,例如淘宝的 npm 镜像:
yarn config set registry https://registry.npm.taobao.org
4. 配置私有仓库
如果你的项目需要使用私有仓库中的包,可以配置 Yarn 连接到私有仓库。假设你的私有仓库 URL 是 http://my.private.registry/
,则配置如下:
yarn config set registry http://my.private.registry/
同时,如果私有仓库需要认证,还需要配置用户名和密码:
yarn config set username <your-username>
yarn config set password <your-password>
5. 配置并行安装
Yarn 默认会并行安装依赖,但你可以通过配置来调整并行度。例如,设置最大并行安装数为 4:
yarn config set concurrent 4
使用 Yarn
1. 初始化项目
使用 Yarn 初始化一个新的项目,会创建一个 package.json 文件:
yarn init
2. 添加依赖
添加一个依赖到项目中:
yarn add <package-name>
3. 查看依赖
列出当前项目的所有依赖:
yarn list
4. 升级依赖
升级一个依赖到最新版本:
yarn upgrade <package-name>
5. 删除依赖
从项目中移除一个依赖:
yarn remove <package-name>
高级配置
Yarn 还提供了许多高级配置选项,包括但不限于:
- Workspaces:用于管理多项目仓库。
- Plugins:扩展 Yarn 的功能。
- Hooks:在 Yarn 执行某些操作前后执行自定义脚本。
通过编辑项目根目录下的 yarnrc.yml 文件,可以进行更详细的配置。
基础命令
初始化项目
yarn init
使用此命令可以初始化一个新的项目,生成 package.json
文件。这一步通常在项目开始时进行。
yarn init
添加依赖
yarn add
这是最常用的命令之一,用于向项目添加新的依赖。你可以指定版本号或范围,如果没有指定,默认添加最新的稳定版。
yarn add <package-name> # 添加最新稳定版
yarn add <package-name>@<version> # 添加特定版本
yarn add <package-name>@latest # 添加最新版本
yarn add <package-name>@next # 添加下一个版本
移除依赖
yarn remove
用于从项目中移除不再需要的依赖。
yarn remove <package-name>
升级依赖
yarn upgrade
用于将现有依赖升级到最新版本或指定版本。
yarn upgrade <package-name> # 升级到最新版本
yarn upgrade <package-name>@<version> # 升级到指定版本
降级依赖
yarn downgrade
将现有依赖降级到指定版本。
yarn downgrade <package-name>@<version>
查看依赖
yarn list
显示项目中所有依赖的列表,包括版本信息。
yarn list
检查依赖
yarn check
检查项目中的依赖是否正确安装,确保 yarn.lock 文件与实际安装的依赖匹配。
yarn check
清理缓存
yarn cache clean
清除 Yarn 的缓存,通常在遇到安装错误或想要强制重新下载依赖时使用。
yarn cache clean
查看包信息
yarn info
获取指定包的详细信息,包括版本历史、作者、许可证等。
yarn info <package-name>
运行脚本
yarn <script-name>
执行 package.json
文件中定义的脚本。
yarn start # 如果 `package.json` 中定义了 `start` 脚本
查看过期依赖
yarn outdated
列出所有过期的依赖,即有可用更新的依赖。
yarn outdated
去重依赖
yarn dedupe
减少重复的依赖项,优化依赖树。
yarn dedupe
查找依赖来源
yarn why
查找某个依赖为何被安装,即追踪到引入该依赖的源头。
yarn why <package-name>
生成锁定文件
yarn install
虽然默认情况下 yarn install
就会生成或更新 yarn.lock
文件,但明确提及是为了强调其重要性。yarn.lock
文件确保了依赖的一致性。
yarn install
创建可执行脚本
yarn bin
显示可执行脚本的路径,这对于在项目中使用全局安装的包非常有用。
yarn bin
查看版本
yarn --version
显示当前使用的 Yarn 版本。
yarn --version
帮助文档
yarn help
显示所有可用命令的帮助文档。
yarn help
使用场景
- 项目初始化:使用
yarn init
创建package.json
。 - 添加依赖:使用
yarn add
添加新依赖。 - 运行脚本:使用
yarn <script-name>
运行项目中的脚本。 - 依赖管理:使用
yarn upgrade
、yarn remove
和yarn dedupe
管理依赖。 - 版本控制:使用
yarn check
确保yarn.lock
文件与实际安装的依赖一致。 - 问题排查:使用
yarn why
和yarn outdated
排查依赖问题。
日常使用
安装项目依赖
在开始任何项目之前,确保你已经在系统上安装了 Yarn。接下来,我们将详细介绍如何使用 Yarn 来安装项目依赖。
初始化项目
在项目目录中运行 yarn init 命令来初始化项目,这将创建一个 package.json
文件,其中包含了项目的元数据和依赖信息。
yarn init
添加依赖
使用 yarn add
命令来添加项目所需的依赖。例如,如果你想添加 express 框架作为项目依赖,可以运行:
yarn add express
这将在 package.json
文件中添加 express 依赖,并在 node_modules
目录下安装相应的包。同时,Yarn 也会生成或更新 yarn.lock
文件,确保依赖的一致性。
运行脚本
Yarn 不仅是一个包管理器,还可以用来运行项目中的脚本。在 package.json
文件中,你可以定义各种脚本,如启动服务器、运行测试或构建项目等。
定义脚本
在 package.json
文件中,找到或添加 “scripts” 字段,然后定义你需要的脚本。例如:
{
"scripts": {
"start": "node server.js",
"test": "jest",
"build": "webpack"
}
}
这里定义了三个脚本:start
、test
和 build
,分别对应启动服务器、运行测试和构建项目。
运行脚本
一旦脚本定义好,就可以使用 Yarn 来运行它们。例如,要启动服务器,只需运行:
yarn start
这将执行 package.json
中 “scripts” 下的 “start” 脚本。
创建和发布包
如果你正在开发一个库或工具,可能需要将其打包并发布到 npm 仓库,以便其他开发者可以使用。
创建包
首先,确保你的项目包含所有必要的元数据,如名称、版本、作者等。这些信息应该在 package.json 文件中定义。
打包
在发布前,可能需要运行一些预构建脚本来准备发布。例如,你可能需要编译源代码或生成文档。这通常在 package.json
的 “scripts” 字段中定义。
{
"scripts": {
"prepublishOnly": "npm run build"
}
}
这里的 "prepublishOnly"
脚本会在发布前自动运行。
登录 npm
在首次发布前,需要使用 npm CLI 登录到你的 npm 账户:
npm login
按照提示输入你的 npm 用户名、密码和邮箱地址。
发布包
最后,使用 npm publish
命令来发布你的包:
npm publish
注意:虽然 Yarn 本身不直接支持 publish 命令,但你可以使用 npm 的 publish 命令来发布包。这是因为 Yarn 和 npm 在包的发布流程上是兼容的。
标签:npm,依赖,项目,基础,yarn,概念,Yarn,安装 From: https://blog.csdn.net/A1215383843/article/details/144797166