Windows 下载、安装 Yarn,快速、可靠、安全的 JavaScript 包管理器(附安装包yarn-1.22.22.msi)
文章目录

1. Yarn 简介
Yarn 是一款快速、可靠、安全的 JavaScript 包管理器(package manager),由 Facebook 于 2016 年 10 月联合 Google、Exponent、Tilde 三家公司共同推出。它诞生的初衷,是解决当时 npm 在大型项目中安装缓慢、依赖安装结果不可复现、网络请求失败导致安装中断等问题。发布后 Yarn 迅速成为前端工程化领域使用最广的包管理器之一,目前在 GitHub 上已获得超过 4.1 万 Star。
Yarn 1.x 系列(官方称 Yarn Classic)以稳定、兼容著称。官方团队后来将新功能开发转移到新一代 Yarn(Yarn Berry)上,1.x 线转入冻结维护状态,只进行必要的缺陷修复。因此 v1.22.22 属于久经打磨的稳定版本,适合追求安装速度与确定性的项目长期使用。
Yarn 的三大核心设计目标:
- 快速:Yarn 会缓存下载过的每一个包,同一版本绝不重复下载,并且几乎将所有操作并发执行,最大限度利用系统与网络资源,安装速度更快。
- 可靠:采用详细而简洁的锁定文件(lockfile,即 yarn.lock)与确定性的安装算法,保证同一份代码在任何机器上安装出的依赖完全一致。
- 安全:在执行已安装包的代码之前,使用校验和(checksum)验证每个包的完整性,防止包被篡改。
除以上设计目标外,Yarn 还具备以下特性:
- 离线模式:曾经安装过的包,无需联网即可再次安装。
- 网络性能:高效排队请求并避免请求瀑布,最大化网络利用率。
- 网络韧性:单个请求失败不会拖垮整个安装,失败的请求自动重试。
- 扁平模式:将版本不匹配的依赖解析为单一版本,避免 node_modules 中出现大量重复副本。
2. v1.22.22 版本亮点
该版本汇集了 1 位贡献者 的 3 条 贡献。
v1.22.22 于 2024 年 3 月 9 日发布,是一次维护性更新,包含两项修复:
- 修复 punycode 警告。punycode 是 Node.js 中用于国际化域名编码的内置模块,在新版 Node.js 中已被标记为弃用,旧版 Yarn 运行时会打印相关的弃用警告信息,该版本消除了这一警告,让命令行输出恢复干净。
- 修复依赖提升(hoisting)问题。当传递依赖(transitive dependency,即依赖的依赖)自身又将别名(alias)依赖列入自己的依赖清单时,Yarn 在将公共依赖提升到 node_modules 顶层的过程中会出现异常,该版本修复了这一场景。
术语说明:别名依赖指安装时为包指定一个自定义名称;依赖提升指 Yarn 将多个包共同依赖的版本提升到 node_modules 顶层以减少重复的机制。
3. 获取安装包
如果访问 GitHub 不便,安装包及中文文档:https://hanshuixin.org/go/2264(内含 yarn-1.22.22.msi、README 中英对照、发布说明中英对照和 LICENSE)。
Yarn 其他版本:https://hanshuixin.org/resource/software_integrated_package/Windows/Yarn
Windows安装yarn-v1.22.22(yarn-1.22.22).zip
├── yarn-1.22.22.msi
├── Windows安装yarn-v1.22.22(yarn-1.22.22).pdf
├── README/
│ ├── README.md
│ └── README-中文版.md
├── 发布说明/
│ ├── RELEASE-NOTES.md
│ └── RELEASE-NOTES-中文版.md
└── LICENSE4. 安装
双击整合包根目录中的 yarn-1.22.22.msi,按向导完成安装。
Yarn 依赖 Node.js 运行环境(要求 Node.js 4.0 及以上版本,建议使用 LTS 版本)。若尚未安装 Node.js,请先完成 Node.js 安装,再安装 Yarn。安装完成后,重新打开命令行窗口执行 yarn --version,输出版本号即表示安装成功。
5. 使用
以下命令均在项目根目录的命令行中执行。
5.1 初始化项目
yarn init在当前目录交互式创建 package.json,记录项目名称、版本与依赖信息。
5.2 添加依赖
yarn add lodash # 安装并写入 dependencies(生产依赖)
yarn add --dev jest # 安装并写入 devDependencies(开发依赖)
yarn add lodash@4.17.21 # 安装指定版本添加依赖后会同步更新 package.json 与 yarn.lock,保证团队成员之间的安装结果一致。
5.3 安装项目全部依赖
yarn install # 按 yarn.lock 精确安装依赖
yarn install --frozen-lockfile # CI 环境推荐:不更新 lockfile,保证可复现5.4 移除与升级依赖
yarn remove lodash # 移除指定依赖
yarn upgrade # 按 package.json 中声明的范围升级全部依赖
yarn upgrade lodash # 升级指定包5.5 运行项目脚本
yarn run dev # 执行 package.json scripts 中定义的 dev 命令
yarn start # 等价于 yarn run start5.6 排查依赖来源与清理缓存
yarn why lodash # 查询某个包为何被安装、被哪些依赖引用
yarn cache clean # 清理本地缓存