
真的假的?
又是一个“拯救者”?
每次听到这种词儿我都下意识想划走。
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

Comments NOTHING