如何在Yarn中更新全局包?

How can I update global packages in Yarn?

本文关键字:全局 更新 Yarn      更新时间:2023-09-26

我尝试了一些可能的CLI命令,但似乎没有一个实际更新安装了yarn global add的软件包。

yarn global upgrade &yarn upgrade global都不能正常工作。是否有升级全局包的方法?

br:

正如webjay所说,你只需:

yarn global upgrade

yarn版本1.2.1以后。

早期版本:

(cd ~/.config/yarn/global && yarn upgrade)

检查修理

遗憾的是,目前没有yarn global check

你可以运行yarn global add --force来重新安装所有的包。

对于check全局包,您可以将~/.config/yarn/global/视为本地包,因为:

  • ~/.config/yarn/global/package.json有所有全局包的依赖项
  • ~/.config/yarn/global/node_modules包含所有全局包。

检查所有全局包,只有在发现错误时才重新安装:

$ (cd ~/.config/yarn/global && yarn check || yarn install --force)

使用yarn global add <package>@latest将升级一个特定的包,如果这是你想做的。

最近添加的yarn global upgrade升级所有包。

这个问题已经在https://github.com/yarnpkg/yarn/issues/776

注意,每个yarnpkg/yarn #5001, yarn global upgrade foo并不总是将包升级到最新版本,即使有--latest标志。

例如,如果您已经安装了foo v12.0.1,并且v13.0.0可用,则不会升级到v13.0.0,因为默认情况下yarn global upgrade目前不会越过semver中的主要障碍(有关更多信息,请参阅上述问题中的讨论)。

运行yarn global add foo 将当前安装的版本升级到最新版本,即使当前安装的版本与最新版本之间存在semver主要版本冲突。

我相信yarn global upgrade-interactive也会允许人们升级过去的主要版本。

我使用yarn global upgrade

尝试升级时出现错误。

我试图通过以下方式升级全局安装的yarn包:

yarn global upgrade

显然yarn global已被yarn dlx取代,然而yarn dlx不做同样的事情作为yarn global。真让人困惑:/.

我的诀窍是通过:

暂时降级我的安装:
yarn set version classic

现在我可以运行upgrade命令了。

之后,我又更新了一次:

yarn set version berry