Yarn |下载与配置+在 Excalidraw 项目中使用 Yarn

一、简介

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

npmyarn 都是 JavaScript 生态中主流的包管理工具,用于安装、更新、卸载依赖包,管理项目依赖关系。它们在功能上高度重叠,但在性能机制、锁定文件、缓存策略、并发能力等方面存在显著差异。以下是详细对比:

1. 安装速度与并发能力

  • npm:早期版本(v4及以前)是串行安装,速度较慢;从 v5 开始支持并行下载,但整体仍不如 Yarn 高效。
  • Yarn :从诞生之初就支持并行下载,能同时下载多个包,极大提升安装速度,尤其在大型项目中优势明显。

2. 锁定文件机制

  • npm :使用 package-lock.json,记录每个依赖包的完整版本和子依赖树,确保安装一致性。
  • Yarn :使用 yarn.lock,采用更严格的语义锁定,能更精确地控制依赖版本,避免因版本浮动导致的"依赖不一致"问题。

3. 缓存机制与离线支持

  • npm:从 v5 开始引入本地缓存,但缓存管理较松散,离线安装支持有限。
  • Yarn :拥有全局缓存机制,所有下载过的包都会被缓存,即使断网也能从缓存中安装,支持真正的"离线安装"。

4. 安全性与完整性校验

  • npm:依赖包在安装时会进行完整性校验,但机制相对基础。
  • Yarn :在安装前会对每个包进行哈希校验,确保包未被篡改,安全性更高。

5. 命令兼容性与学习成本

  • 两者命令高度相似,例如:
    • 安装依赖:npm install vs yarn
    • 安装指定包:npm install react vs yarn add react
    • 启动脚本:npm start vs yarn 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.222.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.jsonyarn.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 项目中成功运行开发环境。

相关推荐
૮・ﻌ・12 天前
Nodejs - 02:模块化、npm、yarn、cnpm
前端·npm·node.js·express·yarn·cnpm·包管理工具
乐hh15 天前
Hadoop 3.3.5 + Flink 1.15.3 集群完整部署手册(3节点标准版)
java·大数据·hadoop·hdfs·zookeeper·flink·yarn
悢七15 天前
flink-yarn提交任务,application无限次appattempt
flink·yarn
Thomas.Sir18 天前
Hadoop YARN:大数据集群的“操作系统”
大数据·hadoop·分布式·yarn
cvcNYgAdnd2 个月前
AES CCM算法的FPGA/Verilog实现探索
yarn
ha_lydms2 个月前
Hadoop 架构
大数据·hadoop·hdfs·架构·mapreduce·yarn·数据处理
徐先生 @_@|||2 个月前
大数据处理框架(Hadoop VS PySpark)
大数据·hadoop·分布式·spark·k8s·yarn
查士丁尼·绵2 个月前
hadoop集群存算分离
hive·hdfs·zookeeper·spark·hbase·yarn·galera
鹿衔`2 个月前
CDH 6.3.2 异构集群优化实施文档
hdfs·yarn·cdh·cdh集群优化