☰
Yarn安装与配置全攻略:搞定环境变量、镜像源与常用命令
2026/10/2 20:36:53 网站建设 项目流程

先把结论放在这里:如果你现在在网上搜“怎么下载安装yarn”,大概率会翻到两类东西——一类是教你怎么装JavaScript的包管理器Yarn,另一类则是搜到了那个专门找电影台词截图的同名网站。后者虽然也有点意思,但不是咱们要聊的东西。这篇文章只讲一件事:把Yarn(包管理器)从头到尾装好,装完还能流畅地用起来,不踩坑、不返工。

顺便说一句,Yarn这名字起得确实容易让人误会。它在英文里的本意是“纱线、毛线”,所以你在搜索引擎里混着搜,甚至能搜出一堆织毛衣的教程。做前端这几年,我前前后后在Windows、macOS、Linux上都装过Yarn,也被PATH、镜像源、Corepack这些乱七八糟的事情折腾过。这次就把这些经历整理成一篇可以直接照着做的实操笔记,覆盖常见安装方式、环境变量配置、镜像源提速、常用命令以及问题排查,适合从没用过Yarn的新手,也适合被环境问题卡住想快速脱困的老手。

1. 安装之前先摸清这些底,别装了个寂寞

1.1 Yarn到底是什么,为什么放着npm不用非要用它

Yarn 是 Facebook(现在叫 Meta)团队在 2016 年开源的一个JavaScript包管理器,本质上和 npm 做的是同一件事:帮你下载项目依赖、管理版本、执行脚本。当初它出现的直接原因是 npm 在早期版本里实在是太慢了——安装依赖是串行的,一个包一个包排队下载,项目中依赖一多,等得人直想摔电脑。Yarn 一出来就做了几件核心优化,让依赖安装的速度和稳定性都有了质变:

  • 并行下载:多个依赖同时拉取,而不是排队等待,整体耗时大幅缩短。
  • 离线缓存机制:所有下载过的包都会保存在本地缓存目录中,下次安装相同版本时直接读缓存,秒级完成,不用重新去服务器拉。
  • yarn.lock 锁文件:帮你把每个依赖的精确版本固定下来,团队协作时大家装出来的依赖树完全一致,消灭了“我机器上跑得好好的,你这儿怎么一跑就崩”这类玄学问题。

虽然如今 npm 也补上了锁文件(package-lock.json)和缓存机制,速度也提升了不少,但 Yarn 依然是很多公司的标准选择,尤其在前端工程化、Monorepo 这类场景中,Yarn 的 workspace 能力成熟稳定。装一个,不亏。

1.2 安装前的硬性环境检查清单

Yarn 本身不是一门语言,它运行在 Node.js 之上。所以安装 Yarn 前,你的机器里必须已经有 Node.js,这是硬前提。

第一步,先检查 Node.js 是否已安装。打开终端(Windows 用 PowerShell 或 CMD,macOS 用终端 App),执行:

node -v

如果有输出类似v18.16.0的版本号,说明 Node 已就绪;如果提示“node 不是内部或外部命令”,请先到 Node.js 官网下载 LTS 版本完成安装,再回来继续。

第二步,顺便看一眼 npm 是否可用:

npm -v

为什么要看 npm?因为下面我们要讲到的第一种安装方式就是通过 npm 来安装 Yarn,没有 npm 就装不了。当然,Node.js 从 16.10 版本开始内置了 Corepack,这也是一条官方推荐的安装路径,稍后我会单独讲。

最后还要确认一下 Node.js 的版本满足 Yarn 的要求。如果你打算用 Yarn 1.x(经典版),Node 12+ 就够用;如果要用 Yarn 4.x(Berry 版),建议 Node 18 或更高版本。现在新装的 Node 基本都是 LTS 版本,不太会出现版本过低的问题,但检查一下不亏。

另外,不同操作系统对应的推荐安装方式不完全一样。我整理了一张对照表,你可以根据你的系统快速定位:

系统推荐安装方式次选方式备注
WindowsCorepack 或 npm 全局安装Chocolatey / Scoop注意 PATH 配置,Windows 最容易踩坑
macOSHomebrew 安装Corepack / npm 全局安装Homebrew 方式会同时处理好 PATH
LinuxCorepack 或 npm 全局安装apt / dnf 安装系统源里的版本可能偏旧,不推荐作为首选

2. 三种主流安装方式,怎么选都不亏

2.1 方式一:npm 全局安装(最通用,新手首选)

这是最简单直接的方式,不需要额外安装任何工具,只要你的 Node.js 环境正常,一条命令就能搞定。打开终端执行:

npm install -g yarn

-g表示全局安装,装完后 Yarn 的命令会被放到 npm 的全局 bin 目录下。安装完成后验证一下:

yarn -v

正常情况下会输出一个版本号,比如1.22.22。如果你装的是 Yarn 1.x,那到此为止就是安装成功了。如果你希望使用最新的 Yarn 4.x,那还要额外配置 Corepack 或者通过 npm 安装 yarn@latest,这个稍后讲。

这里有两个非常常见的坑,需要提前说一下。

第一,在 macOS 上执行npm install -g yarn时,你可能会遇到EACCES: permission denied之类的权限错误。这是因为全局目录默认需要更高权限。很多人会顺手加个sudo:

sudo npm install -g yarn

加了 sudo 一般能装上,但我不推荐你长期这么干。它本质上是让你用管理员权限去修改 npm 的全局目录,轻则以后每次全局装包都要 sudo,重则把文件权限搞得乱七八糟。更好的做法是修改 npm 的全局目录到你自己的用户目录下。执行:

npm config set prefix ~/.npm-global

然后编辑~/.bashrc或~/.zshrc,把下面这行加进去:

export PATH="$HOME/.npm-global/bin:$PATH"

刷新配置后重新执行yarn -v,权限问题就彻底解决了。

第二,Windows 用户安装完 Yarn 后,如果是新开的终端窗口,通常没啥问题;但如果你是在安装完成前就已经打开了终端,那这个终端窗口里可能读不到新加的 PATH,依然提示“yarn 不是内部或外部命令”。这不是没装上,而是 PATH 没刷新。最简单的处理办法:关掉所有终端窗口,重新打开一个,再执行yarn -v。

2.2 方式二:Corepack(官方推荐的现代路线)

Corepack 是当年 Node.js 团队为了规范前端包管理器的版本管理而引入的工具,从 Node.js 16.10 开始随 Node 一同发布,不需要额外安装。它的巧妙之处在于:它本身是一个“版本管理器”,可以在一个项目里灵活指定 Yarn 的版本,不会和其他项目相互污染。

如果你要启用 Yarn,先开启 Corepack:

corepack enable

然后准备你想要的 Yarn 版本。以最新的稳定版为例:

corepack prepare yarn@stable --activate

这条命令会去下载指定的 Yarn 版本并把它激活为当前环境默认版本。验证一下:

yarn -v

这时输出的版本号大概率是4.x.x,也就是 Yarn Berry。

这条路线的优势很明显:不用手动折腾 PATH,也不会因为 npm 全局目录权限问题卡壳。另外,在一个新项目里,你可以在package.json的根目录写明packageManager字段,之后 Corepack 会自动根据这个字段切换 Yarn 版本。它很适合进阶用户使用。

需要注意,如果你的 Node.js 版本低于 16.10,Corepack 是不自带的,你需要通过 npm 单独安装:

npm install -g corepack

2.3 方式三:系统包管理器安装(macOS / Linux 友好)

除了 npm 和 Corepack,你还可以直接使用系统的包管理器来安装 Yarn。

macOS 上,用 Homebrew 安装最省心:

brew install yarn

Homebrew 会自动处理好 PATH,装完即可直接使用。这种方式非常适合 Mac 用户,个人体验下来也很干净。

Windows 上,如果你平时习惯用 Chocolatey 或 Scoop,也可以试试:

choco install yarn

或者

scoop install yarn

Linux 上,不同的发行版对应的命令不一样。以 Ubuntu / Debian 为例:

apt install yarn

但我个人不太推荐 Linux 上优先用系统源安装,因为系统软件源里的 Yarn 版本往往偏旧,而且包的更新节奏跟不上官方,装完之容易遇到“老版本不支持新项目”的问题。Linux 上我最推荐的方式还是 Corepack 或 npm 全局安装。

2.4 三种方式怎么选:直接给结论

  • 新手、赶时间、想最快用上:npm 全局安装,一条命令解决。
  • 愿意花 5 分钟折腾一次、希望长期省心:Corepack 路线,版本管理清晰,项目间隔离性好。
  • macOS 用户:Homebrew 也完全没问题,最省事;npm 和 Corepack 同样适合。
  • Linux 用户:优先 Corepack 或 npm 全局安装,尽量不用系统源。

这三种方式之间并不是互斥的,它们之间也不存在“卸载一个才能装另一个”的约束。如果你现在环境里有旧版 Yarn 想升级,直接按照自己的场景执行对应命令即可。

3. 环境配置这一步没弄好,装完也白装

3.1 PATH 和全局目录:为什么命令就是找不到

安装完成只是第一步,环境配置才是真正的分水岭。很多新手安装明明成功了,一执行yarn却提示找不到命令,十有八九是 PATH 没配对。

PATH 是什么?你可以简单理解成一个“可执行命令的查找名单”,当你输入yarn时,系统会按照 PATH 中记录的目录顺序,挨个去找有没有一个叫 yarn 的可执行文件。如果文件不在这些目录里,系统就直接告诉你“找不到”。

我们先来定位一下 Yarn 被安装到了哪里。在终端执行:

where yarn

Windows 下会输出类似这样的路径:

C:\Users\你的用户名\AppData\Roaming\npm\yarn C:\Users\你的用户名\AppData\Roaming\npm\yarn.cmd

如果能看到输出,说明 Yarn 文件确实存在,那问题大概率就出在 PATH 没有包含上面的目录。解决办法是打开“系统属性 -> 环境变量”,在“用户变量”里找到Path,把上面输出中的C:\Users\你的用户名\AppData\Roaming\npm加进去。加完后重新打开终端,再执行yarn -v验证。

macOS 和 Linux 下,用which yarn或whereis yarn,如果输出路径存在,一般不太会出现 PATH 缺失的问题——除非你用的是某些非交互式登录 shell,配置文件没加载全。这时候检查一下~/.bashrc、~/.zshrc,把 Yarn 的 bin 目录手动添加进PATH即可。

还有一类情况需要留意:有时候你执行yarn -v正常,但执行yarn global bin时,输出的路径和你当前的 PATH 对不上——这是因为全局 bin 目录和当前 PATH 中生效的目录并不一致。这时候建议你顺手把 Yarn 的 global bin 目录也加到 PATH 里,避免后面yarn global add安装的命令找不到。执行:

yarn global bin

把输出的路径添加进上面的环境变量列表即可。

3.2 镜像源配置:让你的依赖下载速度起飞

Yarn 默认使用的依赖源是官方源,在国内访问时下载速度一言难尽——装个小包能等上半天,大型项目光装依赖就能把人逼疯。好在国内有靠谱的镜像源可以切换,速度会快上几个数量级。

先看看你当前使用的源地址:

yarn config get registry

如果输出的不是https://registry.yarnpkg.com,说明你可能之前已经配置过;如果是默认源,建议切换成镜像源。

切换命令如下:

yarn config set registry https://registry.npmmirror.com --global

这里加--global表示全局生效,对所有项目有效。如果你想只在某个项目里使用这个源,去掉--global即可,这样不会影响其他项目。

执行完再验证一下:

yarn config get registry

看到输出了https://registry.npmmirror.com,说明配置成功。之后再执行yarn install,你就能感受到明显的速度差异了。

有一点需要提醒:团队协作时,不要让某个成员单独修改镜像源不加说明。虽然镜像源只会影响下载速度,不会影响依赖内容,但出现问题排错时,环境的统一性能少浪费很多时间。如果是团队项目,优先把 registry 配置写进项目级的.yarnrc.yml文件里,这样大家拉下来代码后自动使用相同的源。

3.3 验证安装是否真正可用的三个关键命令

环境配置完成后,建议按顺序执行以下三个命令做最终验证,确保不是“假成功”:

yarn -v node -v yarn config get registry

正常输出的预期结果大致是:

  • yarn -v输出一个版本号(看到 1.x 或 4.x 都是正常的);
  • node -v输出 Node 版本号,确保环境与 Yarn 的运行时兼容;
  • 最后一步能看到刚才配置的镜像源地址。

这三个都通过,你的 Yarn 就真正达到了随时可用的状态。

4. 从零到一:Yarn 的常用命令与项目落地技巧

4.1 初始化一个项目:yarn init

安装配置完成,接下来要做的事就是真正用起来。先从初始化一个项目开始。找个空目录,进入目录后执行:

yarn init -y

-y参数表示所有交互式提问都用默认值,快速生成一个package.json。如果你希望手动填写项目名称、版本、描述等信息,直接执行yarn init,然后根据提示逐项回答即可。

生成的package.json大概长这样:

{ "name": "my-demo", "version": "1.0.0", "main": "index.js", "license": "MIT" }

这个文件就是整个项目的“清单”,后面所有依赖都会记录在它里面。

4.2 安装与卸载依赖:yarn add 与 yarn remove

在项目里安装一个新依赖,最简单的方式是:

yarn add lodash

这条命令会做三件事:下载 lodash 包、把它写入package.json的dependencies字段、更新yarn.lock锁文件。以后别人拿到这个项目,直接执行yarn install,就能装出和你完全一致的依赖环境。

如果你是开发阶段才用的工具类依赖,比如测试框架、构建工具,那应该安装到devDependencies,加一个-D参数即可:

yarn add -D jest

卸载依赖就简单了:

yarn remove lodash

它会把 lodash 从package.json和yarn.lock中一并清理掉。

还有一个我经常用到的命令是yarn install和它的进阶版yarn install --frozen-lockfile。前者会按照锁文件安装依赖;后者会强制严格按锁文件安装,如果发现yarn.lock和package.json不匹配就报错而不是自动修正——这个在 CI/CD 流水线里非常实用,能确保测试环境与本地环境完全一致。

4.3 排查依赖问题:yarn why 与 yarn outdated

日常开发里还有两个排查看家的命令,值得记下来。

当你发现项目里某依赖出现了一个兜圈子的版本冲突,又不知道是谁引进来的时候,执行:

yarn why some-package

输出会列出这个版本的依赖依赖了它、为什么安装了这个版本。在大型工程里,这个命令能省下大量排查时间。

想看当前所有依赖是否有新版本,执行:

yarn outdated

它会列出一个表格,告诉你哪些包有更新,当前版本是多少,最新版是多少,以及是 major、minor 还是 patch 级别的更新。手动升级时可以先用这个命令做一次评估,再决定要不要yarn upgrade。

4.4 离线缓存:解决“换台电脑就装不动”的尴尬

Yarn 从 1.x 时代开始就自带了一个强大的缓存机制,所有下载过的依赖包都会存一份在本地。缓存目录可以通过下面命令查:

yarn cache dir

默认情况下,缓存是自动管理的。如果你需要离线安装依赖,已经用 Yarn 装过一次的项目,然后再在无网络的环境中去执行yarn install --offline,Yarn 就会优先从本地缓存读取,而不是去请求网络。实测下来,配合锁文件,这种方式在内网开发环境和 CI 上表现相当稳定。必要时候你还可以手动指定缓存目录部署到内网服务器,实现团队级的离线条线。

5. 常见问题与排查实录,都是踩过的真坑

5.1 高频问题速查表

结合我自己的经历和身边同事踩过的坑,把高频问题整理成一张速查表,按图索骥可以省很多时间:

现象可能原因解决办法
提示“yarn 不是内部或外部命令”PATH 没配或没刷新用where yarn或whereis yarn定位,把对应 bin 目录加入 PATH;关掉旧终端重开
macOS 装包提示权限不足 EACCESnpm 全局目录权限问题不要直接 sudo,改用npm config set prefix ~/.npm-global并配置 PATH
PowerShell 不允许运行脚本,报 script not signedWindows 执行策略限制以管理员身份运行 PowerShell,执行Set-ExecutionPolicy RemoteSigned,确认 Y
安装依赖时提示证书过期或 SSL 错误默认源网络不稳切换到镜像源yarn config set registry https://registry.npmmirror.com --global
报错Command "yarn" not found但 yarn 明明装了当前终端环境没加载 PATH重启终端;如果还不行,检查 shell 配置文件是否有 export 那句
corepack enable提示找不到命令Node 版本过旧,低于 16.10升级 Node,或npm install -g corepack
yarn install卡住不动默认源太慢切换镜像源;检查网络代理是否污染了下载流量
项目里执行 yarn 用的是 1.x,但你项目要 4.xCorepack 未启用或版本没切在项目package.json写"packageManager": "yarn@4.x.x",然后重新执行corepack prepare

5.2 典型场景一:Windows 下装完 yarn,但报错“不是内部或外部命令”

这个现象真的是高频中的高频。有位同事小白阶段在 Windows 上装完 Yarn,执行yarn -v直接看到“yarn 不是内部或外部命令”,一度以为卸载重装能解决。

我告诉他别急,先执行where yarn,结果输出了一个AppData\Roaming\npm\yarn路径——文件就在那儿,说明装成功了。那问题就只剩 PATH 没包含这个目录。按下面的步骤操作一遍即可:

  1. 右键“此电脑” -> “属性” -> “高级系统设置” -> “环境变量”。
  2. 在“用户变量”中找到Path,双击编辑。
  3. 点击“新建”,粘贴C:\Users\你的用户名\AppData\Roaming\npm。
  4. 一路“确定”保存,然后关掉当前所有终端窗口,重新打开一个 PowerShell。
  5. 再执行yarn -v,正常输出版本号。

5.3 典型场景二:Yarn 1.x 与 Corepack 的“版本冲突”

还有一个不少朋友会遇到的场景:你已经通过 npm 安装了 Yarn 1.22,后来为了新项目用了 Corepack 启用 Yarn 4.x,但执行yarn -v时发现还是 1.22。怎么回事?

其实就是 PATH 的查找顺序问题。npm 装的 Yarn 在AppData\Roaming\npm目录下,而 Corepack 管理的 Yarn 在 Node 安装目录附近。系统在 PATH 中先匹配到了 npm 装的那个,就停下来了,不再往后找。解决办法很直接,把 npm 全局目录里的那个 Yarn 卸载掉,或者调整 Corepack 相关目录优先于 npm 目录。如果确定新项目全部统一走 Corepack 版本管理,最省心的做法是卸载掉全局 npm 装的 yarn:

npm uninstall -g yarn

然后再执行corepack enable和corepack prepare yarn@stable --activate,这样就能确保yarn -v走的是 Corepack 管理的版本了。

5.4 关于“Yarn 网站搜索电影台词”那个同名神器,顺带提一嘴

最后辟个谣。你搜“yarn”的时候看到的那个搜索电影台词截图网站,和咱们今天装包管理器 Yarn 完全不是一码事。前者是一个英文电影台词搜索网站,数据来自一堆影视剧的字幕,适合找表情包、找台词来源;后者是注入工程依赖的工具。很多新手搜教程时被这个名字搞糊涂,甚至以为装错了软件。下次如果再把人搞混,分不清就说“我在搞前端那个包管理器 yarn”,基本就不会错。

6. 最后分享我这几年的实操心得

随手写几点个人体会,不指望面面俱到,但都是实打实的经验。

第一,如果你只是偶尔用 Yarn 跑跑个人项目,就用 npm 全局安装,省事。如果你是要在公司长期搞前端工程,强烈建议把 Corepack 用熟了——它能让你每个项目用各自的 Yarn 版本,避免了“这个工程要 Yarn 1.x,那个要 Yarn 4.x,两个人切来切去装到底哪个”的混乱。我自己的经验是,被这种版本冲突折磨过一次后,就彻底倒向了 Corepack。

第二,别忽视缓存的好处。以前总觉得依赖不过是几秒钟下载的事,直到有一次在隔离内网部署,网络环境极其受限,全仗着 Yarn 的离线缓存,项目才顺利构建。从那以后,我习惯在任意一台网络好的机器上先把大项目的依赖装两遍,确保缓存预热,再去离线环境操作。这个习惯救了我不止一次。

第三,遇到任何安装问题,先别急着卸载重装。按顺序检查三件事:PATH 配了没有、终端重启了没有、镜像源切了没有。我见过太多人反复卸载安装同一个软件,最后发现只是第一步没做。装环境这件事,90%的问题都能通过“确认路径、刷新环境、换源加速”三步解决。

这篇文章到这里就写完了。如果你正好卡在 Yarn 的安装配置上,希望上面这些内容能帮你少走几条弯路。如果还碰到什么没写到的怪问题,欢迎评论区补充,遇到过的朋友也能互相搭把手。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询