一、简介
Yarn 是一个 快速、可靠、安全的 JavaScript 包管理器 ,和 npm 是同类工具(用来安装、管理项目里的第三方库,比如 Vue、React、jQuery 等)。
(想了解更多,可移步到官网https://www.yarnpkg.cn/),下图为官网截图
1. 核心作用
和 npm 一模一样:
- 安装项目依赖(
yarn add 包名) - 卸载依赖(
yarn remove 包名) - 初始化项目(
yarn init) - 运行脚本(
yarn start/yarn dev)
2. 为什么要用 Yarn?
它比早期的 npm 更好用:
- 速度更快:并行下载、缓存已安装包,第二次安装几乎秒速
- 更稳定 :
yarn.lock文件保证所有人安装的依赖版本完全一致 - 更安全:自动校验包完整性,防止恶意代码
- 命令更简洁:少敲键盘
3. 常用极简命令(必记)
bash
运行
# 初始化项目(生成 package.json)
yarn init
# 安装项目所有依赖(最常用)
yarn install / 直接 yarn
# 安装一个包
yarn add 包名
# 安装开发依赖
yarn add 包名 -D
# 卸载包
yarn remove 包名
# 运行 package.json 里的脚本
yarn dev
yarn start
yarn build
4. 和 npm 的简单对比
表格
| npm 命令 | Yarn 等价命令 |
|---|---|
| npm install | yarn / yarn install |
| npm install 包名 | yarn add 包名 |
| npm run 脚本 | yarn 脚本 |
| npm uninstall 包名 | yarn remove 包名 |
二、yarn VS npm
npm 和 yarn 都是 JavaScript 生态中主流的包管理工具,用于安装、更新、卸载依赖包,管理项目依赖关系。它们在功能上高度重叠,但在性能机制、锁定文件、缓存策略、并发能力等方面存在显著差异。以下是详细对比:
1. 安装速度与并发能力
- npm:早期版本(v4及以前)是串行安装,速度较慢;从 v5 开始支持并行下载,但整体仍不如 Yarn 高效。
- Yarn :从诞生之初就支持并行下载,能同时下载多个包,极大提升安装速度,尤其在大型项目中优势明显。
2. 锁定文件机制
- npm :使用
package-lock.json,记录每个依赖包的完整版本和子依赖树,确保安装一致性。 - Yarn :使用
yarn.lock,采用更严格的语义锁定,能更精确地控制依赖版本,避免因版本浮动导致的"依赖不一致"问题。
3. 缓存机制与离线支持
- npm:从 v5 开始引入本地缓存,但缓存管理较松散,离线安装支持有限。
- Yarn :拥有全局缓存机制,所有下载过的包都会被缓存,即使断网也能从缓存中安装,支持真正的"离线安装"。
4. 安全性与完整性校验
- npm:依赖包在安装时会进行完整性校验,但机制相对基础。
- Yarn :在安装前会对每个包进行哈希校验,确保包未被篡改,安全性更高。
5. 命令兼容性与学习成本
- 两者命令高度相似,例如:
- 安装依赖:
npm installvsyarn - 安装指定包:
npm install reactvsyarn add react - 启动脚本:
npm startvsyarn start
- 安装依赖:
- 从 npm 迁移到 Yarn 非常简单,只需保留
package.json,Yarn 会自动生成yarn.lock,几乎零学习成本。
6. 依赖结构与磁盘空间
- npm (v3+)和 Yarn (v1)都采用扁平化
node_modules结构,将依赖提升到根目录,避免深层嵌套,但可能导致重复依赖。 - Yarn (v2+)引入 PnP(Plug'n'Play) 模式,彻底抛弃
node_modules,通过.pnp.js文件映射依赖,极大节省磁盘空间并提升性能。
7. 社区与生态兼容性
- 两者都使用 npm 仓库,可以访问相同的包资源,生态完全兼容。
- Yarn 由 Facebook 开发,社区活跃,支持插件扩展,适合大型团队协作。
8. 适用场景推荐
- npm:适合小型项目、个人开发者,或对工具链无特殊要求的场景。
- Yarn:适合大型项目、团队协作、需要高稳定性与离线支持的场景,尤其推荐使用 Yarn v2+ 的 PnP 模式。
总结
npm 是 Node.js 官方默认工具,生态最广;Yarn 由 Facebook 开发,性能更强、体验更优。两者可互换使用,项目中只需统一工具即可。若追求极致性能与现代特性,推荐使用 Yarn v2+ 或 pnpm。
三、下载、安装与配置
第一步:安装 Yarn
Yarn 依赖于 Node.js 环境,所以在安装 Yarn 之前,请确保你已经安装了 Node.js(包含 npm)。
你可以通过以下两种方式安装 Yarn:
方式 A:使用 npm 全局安装(最通用)
如果你已经安装了 Node.js,直接打开命令行工具(Windows 的 CMD/PowerShell,或 Mac/Linux 的 Terminal),输入以下命令:
npm install -g yarn
安装完成后,验证版本:
yarn --version
如果看到类似 1.22.22或 2.x.x 的输出,说明安装成功。
方式 B:使用独立安装包(Windows 推荐)
前往 Yarn 官网下载 Windows Installer(.msi 文件)。
- 下载并运行安装程序,一直点击"下一步"直到完成。
- 安装完成后,打开一个新的命令行窗口,输入
yarn --version进行验证。
第二步:配置 Yarn(可选但推荐)
为了加速国内的依赖下载速度,建议配置淘宝镜像源(或者使用 yarn config set registry 命令)。
1. 配置国内镜像源
由于默认的 npm 源在国外,速度较慢。你可以切换到国内的镜像源。
推荐使用 npm 镜像源(稳定):
yarn config set registry https://registry.npmmirror.com
或者使用淘宝镜像源:
yarn config set registry https://registry.npm.taobao.org
2. 查看当前配置
如果你想确认配置是否生效,可以运行:
yarn config list
在输出结果中找到 registry 一行,确认地址是否已变为国内源。
第三步:在 Excalidraw 项目中使用 Yarn
回到你之前下载的 Excalidraw 项目文件夹。
1. 进入项目根目录
打开命令行工具,进入你存放 Excalidraw 代码的根目录(包含 package.json 的那一层)。
cd F:\ProgramFiles\excalidraw-0.18.0
2. 安装项目依赖
根据你之前截图中的文档,直接运行安装命令。Yarn 会自动读取 package.json 和 yarn.lock 文件来下载依赖。
yarn
注意 :因为这是一个 Monorepo(多包仓库),根据你第一张
package.json的截图,它可能会自动处理工作区(workspaces)的依赖安装。
3. 启动开发服务器
安装完成后,按照文档提示启动服务:
yarn start
如果一切顺利,浏览器应该会自动打开,或者你会在命令行中看到类似 Local: http://localhost:3000 的提示。
常用 Yarn 命令速查表
| 命令 | 说明 |
|---|---|
yarn |
安装 package.json 中列出的所有依赖 |
yarn add <package> |
安装一个新包并添加到依赖中 |
yarn remove <package> |
移除一个包 |
yarn start |
运行 package.json 中定义的 start 脚本 |
yarn build |
运行 package.json 中定义的 build 脚本 |
yarn upgrade |
升级所有包到 package.json 中指定的最新版本 |
yarn global add <package> |
全局安装一个包(如 yarn global add create-react-app) |
按照上述步骤操作,即可顺利完成 Yarn 的安装与配置,并在 Excalidraw 项目中成功运行开发环境。