Yarn在前端开发者中必然不陌生,目前来说大部分使用的都是Yarn 1.x的版本,其实Yarn 1.x很多时候定位有些尴尬,在设计上还是从npm上借鉴了很多,甚至在大多开发者眼中只是将package-lock.json
换成了yarn.lock
而已(yarn workspaces
是较大的不同),虽然号称在速度上有优势,但npm所具有的缺点Yarn 1.x还是不可避免地会存在。
所以促使了Yarn 2地出现,在尽可能保留1.x的使用方式和功能的同时,还提出和实现/重构了很多新的功能,目前1.x已经不再进行版本更新了,并且1.x的文档也已经转移到https://classic.yarnpkg.com/。本文不会详细介绍Yarn 2引入了哪些新的功能,仅从安装、使用以及现在的开发模式的角度了解Yarn 2,具体新功能可以到Changelog或Features中查看。
安装Yarn 2
在维护多个项目时经常遇到npm版本不统一的情况,所以我们经常需要在同一台机器上安装多个Node.js
,所以nvm和nvm-windows出现了,但作为开发者仍要记得在不同项目间切换版本。而Yarn 2认为自己本身就应该是项目的依赖,甚至版本也应该被锁定(当然可以升级),所以Yarn 2会将自己维护到项目中,目前仍需要借助yarn 1
完成安装:
npm install -g yarn # 全局安装yarn 1
yarn --version # A
虽然看起来有些怪异,但也能理解,毕竟一个如此普及的工具不可能不考虑兼容性和迁移难度就进行完全的覆盖,Yarn 2的出现也要保证原有Yarn 1的正常使用。
工程中升级为Yarn 2
前面说到Yarn 2是把自己作为项目的一个普通依赖看待的,所以升级Yarn 2也是针对项目而言的:
cd /path/to/project
# 上面A行得到的版本如果是1.22+
yarn set version berry # B1
# 上面A行得到的版本如果低于1.22
yarn policies set-version berry # B2
执行完B1或B2行之后,工程