如何使用Yarn或NPM将一个软件包升级到最新版本

327 阅读3分钟

本周,我一直忙于一个工作项目,将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 的一些情况。