工具技巧Yarn配置技巧_yarn安装与配置指南_yarn包管理工具教程

真的假的?

又是一个“拯救者”?

每次听到这种词儿我都下意识想划走。

npm 用了这么多年,骂归骂,但也习惯了。

就像那个脾气古怪但离不开的同事。

但 Yarn 刚出来那会儿,确实是眼前一亮。

第一次接触,什么感觉?

那个时候,我正在使用一个速度极其缓慢的老旧笔记本,npm install 操作持续了一下午,当我去泡一杯咖啡后回来,它竟然还在不停地转圈圈。

在用yarn首次的时候,那种呈现“刷刷刷”往下滚动那般状态下的感觉,真的略微类似于……便秘经历很长时间之后忽然变得顺畅了。

抱歉这个比喻有点恶心,但你懂我意思。

那时候觉得,这玩意儿,能处。

怎么装?

其实没那么复杂

网上那些教程,动不动就长篇大论,看得人头疼。

其实核心就几句话的事儿:

npm install -g yarn

行了。

验证一下:

yarn -v

蹦出来个版本号,比如 1.22.22 之类的,就成了 。

什么?

你问我为啥不是最新的?

有时候新版本反而不稳,这是前端工具链的玄学。

说实话,配置源这事儿

在国内,谁没被网络抽过风呢?

npm install -g yarn

npm 慢,yarn 一样慢。

别去听从那些,所谓“用了yarn就会飞速提升”这般的不实言论,究其根源,则在于服务器放在了在遥远太平洋那里的他国。

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

淘宝源,yyds。

yarn --version

这行命令,建议刻烟吸肺。

那些基本操作,其实没啥好说的

初始化:

yarn init

一顿回车,或者老老实实填信息。

装个 react:

yarn add react react-dom

brew install yarn

node_modules 就开始跳动了。

看着那些小方块滚动,有种莫名的治愈感。

choco install yarn

是我太奇怪了吗?

删包:

yarn remove react-dom

更新:

yarn upgrade

yarn init

还有那个锁文件 yarn.lock。

以前被 npm 坑过的人,看到这个文件就像看到保险单。

但你别被骗了,Yarn 也不是神

以实际情况而言,当下的 Yarn,特别是在 2.0 之后转变为 Berry 版本的情形下,存在有点将自身变得复杂起来的现象。

那个即插即用的东西,想法是不错,可是却把节点模块全弄没了,好多旧项目都与之不兼容,错误提示多得能让你对人生产生怀疑了。

我存在一位友人,承接了一个遗留下来的项目,运用了 PnP,然而接连三天均在为依赖问题而反复折腾。

后来他跟我说:我特么就想写个页面,为什么要懂这些?

yarn add react react-dom

## 高级技巧?

其实就那几个实用的

关于 Workspace

这玩意儿确实好用。

尤其是你手上好几个项目共用一个组件库的时候。

yarn remove react-dom

在 package.json 里加一行:

{
"workspaces": ["packages/*"]
}

然后在 packages 目录下,爱放几个子项目放几个。

yarn install 一键装完所有依赖,还能自动链接。

yarn upgrade

但注意,这里容易出 bug。

有时候,你对那个子包相应代码做了修改,然而主项目却死活也不认可,非得要手动去删除 node_modules 之后重新进行安装。

别问我怎么知道的。

关于缓存

yarn 会把下载过的包存起来。

想看看都存了啥?

yarn install

yarn cache dir

那个路径,打开一看,全是压缩包。

有洁癖的人可能会难受。

清缓存:

yarn cache clean

不过一般用不上。

除非你遇到那种诡异的“明明装了却说找不到”的问题。

{
  "private": true,
  "workspaces": [
    "packages/*"
  ]
}

关于全局安装

就 create-react-app 这般工具而言,在全局进行安装会是一种相对省事的做法:

yarn global add create-react-app

但小心,全局装多了,版本冲突起来更麻烦。

我现在倾向于用 npx 或者 yarn create。

一个冷知识

yarn 的网络请求有时候会莫名失败。

尤其 CI 环境里。

{
  "scripts": {
    "start": "node server.js"
  }
}

有个小技巧,建个 .yarnrc 文件,里面写:

network-retries 5

让它多试几次 。

yarn start

虽然有的版本不一定认这个参数,但图个心安。

现在还在用 yarn 的人,都是什么心态?

说真的,2026 年了,pnpm 已经成了新宠 。

那玩意儿省硬盘,装得快,monorepo 支持也好。

但为啥我还留着 yarn?

大概是习惯吧。

yarn cache dir

就像你用惯了一款编辑器,哪怕别人说另一款再好,你也懒得换。

能够设想得到,在某一个深邃的夜晚时,处在项目上线之前的最后一回构建进程里,yarn程序平平稳稳地运行完毕,并未出现任何意外状况。

那种信任感,是日积月累的。

所以,学 yarn 还有意义吗?

yarn cache clean

当然有。

工具这东西,没有最好,只有最适合。

倘若你当前所进行的项目,依旧借由npm,其速率缓慢至极,不妨尝试一下yarn,或许能够开启全新的天地。

但如果你刚入行,也别太纠结。

先挑一个用熟,把精力花在写代码本身。

终究而言,不管是 yarn 也好,还是 npm 亦罢,能够使得我们静下心来编写代码的,那便是优良的工具。

夜深了,我还在等一个构建跑完。

yarn global add create-react-app

yarn 的进度条,一格一格地跳。

盯着屏幕右下角那儿的时间,猛地发觉,这个伴随我们历经这么多年岁月的小小工具,着实也是挺不简单的呀。

它不说话,就默默帮我们把几万个文件理清楚。

偶尔报个错,也是在保护项目不被乱七八糟的依赖搞垮。

行了,构建完了。

部署,关机,下班。

明天见,yarn。

yarn config set registry https://registry.npm.taobao.org