本周,我一直忙于一个工作项目,将Docusaurus(来自Facebook的基于React的文档静态网站生成器)从某个奇怪的alpha版本升级到刚刚发布的新的2.0版本。
yarn remove @docusaurus/core
为什么不把软件包yarn add ,并指定版本号为@latest 呢?这是因为package.json 版本最后会变成latest ,而不是一个实际的版本。这似乎很有用,但如果你想知道你在哪个版本上呢?你必须每次都在npm注册表上查找它。
下面是与npm ,这很好,因为它内置在Node.js中,所以你已经安装了npm 。不需要额外的工作!
npm uninstall @docusaurus/core
我已经转回全职使用yarn ,没有什么特别的原因,只是我喜欢它对终端的着色方式。(我想我是一个很容易推销的人)。
但是,如果这篇文章是你决定跟随潮流并安装yarn 的原因,你可以用文档中的以下命令安装Yarn 3。
corepack enableyarn init -2
那么yarn upgrade-interactive 呢?
yarn upgrade-interactive 命令呢?这个来自Yarn 1的方便的工具实际上在Yarn 3中并没有默认包含。你要像这样安装它。
yarn plugin import interactive-tools
一旦安装了Yarn 3的插件,你就可以在命令行上运行yarn upgrade-interactive ,对你所有的过期包进行一个很好的概述。
yarn upgrade-interactive

作者在MacOS上的iTerm2中`yarn upgrade-interactive`的屏幕截图
运行yarn upgrade-interactive ,会有一个漂亮的小界面,让你选择在相同的主要版本或整体的最新版本上升级。
根据语义版本学,不应该有任何破坏性的变化,除非你转移到一个不同的主要版本(更高的第一个数字),所以这给了你一个伟大的工具,可以同时破坏你的整个 repo!
好吧,至少在我的个人项目中,我是这样使用它的。当你在做一些专业的工作时,我发现一次按5个左右的软件包分组升级是有帮助的,而且我尽量不破坏东西。😅
你的yarn 一直在崩溃吗?
我最近学到的另一个随机但有用的yarn 命令是yarn clear 。显然,当使用Yarn 3(最新版本)时,你不应该在事情发生时随意删除你的node_modules 文件夹。(谁知道呢?)
因此,Docusaurus给了你一个yarn clear 命令,它试图从项目中删除缓存的文件,以使事情顺利进行。(更一般地说,你可以在任何项目中尝试yarn cache clear ,以获得类似的效果)。
运行yarn clear 已经解决了我最近在Docusaurus中工作时遇到的一些 "yarn 无法运行 "的问题。两个例子。
🐬 yarn clear[SUCCESS] Removed the Webpack persistent cache folder at "/Users/derek/dev/docs/node_modules/.cache"./1.8s
是的,我在iTerm2中的zsh 设置中使用了一个海豚表情符号🐬。很可爱,对吗?总之,希望你已经了解了关于yarn 的一些情况。