如何更新Yarn中的全局包?

thi*_*aek 59 javascript node.js yarnpkg

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

yarn global upgrade&yarn upgrade global都无法正常工作.有没有办法升级全球套餐?

Tom*_*ale 56

TL; DR:

正如webjay所说,你只需:

yarn global upgrade
Run Code Online (Sandbox Code Playgroud)

yarn版本1.2.1以后.

对于早期版本:

(cd ~/.config/yarn/global && yarn upgrade)
Run Code Online (Sandbox Code Playgroud)

检查和修理

可悲的是,目前没有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)
Run Code Online (Sandbox Code Playgroud)


cch*_*ain 27

yarn global add <package>@latest如果您正在尝试这样做,则使用将升级特定包.

更新

最近添加的yarn global upgrade升级所有包.这在原始答案时并不存在.

  • 要升级单个软件包,今天"yarn global add <package>"和"yarn global upgrade <package>"都可以使用(但问题是如何升级所有全局软件包,而不仅仅是其中一个软件包). (4认同)

mor*_*top 6

已经在https://github.com/yarnpkg/yarn/issues/776上为此创建了一个问题


Tay*_*ton 5

需要注意的是每yarnpkg /纱#5001yarn global upgrade foo并不总是升级包到最新版本,甚至与--latest标志。

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

运行yarn global add foo 升级当前安装的版本到最新即使当前安装的版本和最新版本之间的semver主要版本肿块。

我相信这yarn global upgrade-interactive也可以让人们升级过去的主要版本颠簸。