如何轻松从传统主流过渡到“现代主流”

我花了整个下午的时间来处理 yarn 版本控制。

情况是这样的:Yarn 过去是通过 `npm i -g yarn` 或 brew 或 choco 等工具全局安装的。您从事的每个项目都会使用该全局安装来管理依赖项,并且通常会安装版本 1,也称为“经典”。还有可怕的 1.22.1(至少对我来说)。

问题是,如果你在版本 1 分支中更新了 yarn,旧项目可能会因为兼容性问题而中断。此外,我还要再花一个下午的时间处理另一个项目。这些下午本可以用来喝咖啡。☕️

进入“现代 yarn”——从版本 2 开始,现在是版本 4。此版本最酷的地方在于它通过 Corepack(处理不同版本的 Node 工具)按项目安装。这意味着每个项目都可以使用自己的 yarn 版本,这对于避免兼容性问题非常有用。但要使其正常工作,您必须全局卸载 yarn 并使用 Corepack 重新安装它。

更多关于 Corepack 的信息请见此处。

以下是如何分步去除经典纱线:

**步骤** 1️⃣:

卸载 Classic Yarn

注意:根据最初安装的方式卸载 yarn:

在 macOS 上使用 Homebrew:

$ brew uninstall yarn

如果是通过 npm 安装的:

$ npm remove yarn --global

步骤 2️⃣:检查卸载👀

$ yarn --version

正确卸载后您应该得到类似的结果。

Image description

如果卸载后仍然获得以前的版本,请尝试以下操作:

# On Mac:
$ which yarn

# On Win:
$ where yarn

# which/where will tell you, if and where yarn is installed. You get paths. Remove them!

$ rm -rf /usr/local/bin/yarn # use the path from before
$ rm -rf /usr/local/bin/yarnpkg # use the path from before

步骤3️⃣:核心包👀

安装并启用 corepack

现在安装 Corepack,如果您的机器上没有它。由于它仍然是专家级的,因此稍后启用它。

如何检查您是否拥有 Corepack?

Image description

如果你还没有安装它那么:

$ npm install corepack --global

启用 Corepack

$ corepack enable

现在,在您的项目(文件夹)中使用现代 Yarn:

$ cd projects/my-project # choose your path
$ yarn set version stable
$ yarn install

切换项目

如果您想将项目迁移到现代 yarn,请尝试以下操作:

$ cd projects/my-project # choose your path
$ yarn set version stable

或者通过 corepack:

$ corepack use yarn@latest

如果您愿意,您甚至可以全局安装新版本的“Modern yarn”:

$ corepack install --global yarn@latest

就我个人而言,完成所有这些操作后,我仍然遇到问题🤯(版本仍为 1.22.1)。以下是对我有用的方法:

Image description

**但是 Yarn Berry 是什么?**

Yarn Berry 是一个 Node.js 的包管理系统,由 Yarn v1 的主要开发者 Mäl Nison 创建。正式版本 (v2) 已于 2020 年 1 月 25 日发布,目前已被 Babel 等大型开源存储库采用。Yarn Berry 由 GitHub 存储库中的源代码管理。

这是@solleedata 的一篇帖子,更详细地解释了 Yarn Berry,上面的描述就是从中复制而来的。