如何使用终端升级纱线版本?


Answers:


145

对于macOS用户,如果yarn通过安装brew,则可以使用以下命令对其进行升级:

brew upgrade yarn


10
标记为Ubuntu,而不是MacO。
Luciano Bargmann

12
将用户路由到此问题时,Google不会检查标签。
切碎

1
您可以通过以下方式更快地做到这一点:(npm uninstall -g yarn && brew install yarn) || brew upgrade yarn
user9869932

请注意,yarn通过安装brew还可以进行安装node。例如,如果您使用nvm或,则可能不希望这样做n
Jeff Fairley

103
npm install --global yarn

npm upgrade --global yarn 

这应该工作。尝试让我知道它是否不起作用。


6
>注意:通常不建议通过npm安装Yarn。使用基于节点的程序包管理器安装Yarn时,程序包未签名,并且唯一执行的完整性检查是基本SHA1哈希,这在安装系统级应用程序时会带来安全风险。 yarnpkg.com/lang/zh-CN/docs/install/#alternatives-stable
mnishiguchi

1
我相当确定您不能再安装/升级yarn npm,而是brew至少需要在OSX上进行安装。
Dragos Rizescu

2
由于该问题专门针对Ubuntu 16.04,因此有关OSX的评论brew并不重要。我只是通过npm upgrade --global yarnUbuntu 16.04 升级了yarn,在Ubuntu 16.04上我通过npm安装了yarn。可以肯定的是,尽管这不是推荐的方法,但仍然有可能。我通过npm安装yarn的最初原因是我要nvm保留多个版本node。安装yarn through apt将在全球范围内安装特定版本的节点。但是我读到可以通过参数避免这种情况--no-install-recommends
trollkotze

57

不记得我是如何安装yarn的,对我有用的命令是:

yarn policies set-version

该命令将当前纱线版本更新为最新的稳定版本。

从文档中:

请注意,此命令也是升级Yarn的首选方法-无论您最初安装它如何,它都将起作用,否则有时可能很难弄清楚。

参考


2
还值得注意的是,此命令创建.yarn/.yarnrc
lfender6445

2
它没有全局更新Yarn,仅在当前项目中更新。
Tonatio

该命令对我不起作用,它返回错误:`error在“ / home / ..”中找不到package.json文件
eyong kevin

1
我猜这没用,因为我安装yarnapt-get。我认为有可能知道您如何安装软件包。对于我来说,我这样做npm list -g >filename.txt,然后在文件中搜索所需的任何软件包。对于apt,我做apt list --installed,然后检查所需包的输出。
永ong凯文

51

在Linux上,只需在终端下运行以下命令:

$ curl --compressed -o- -L https://yarnpkg.com/install.sh | bash

之后,关闭当前端子,然后再次打开。然后,运行以下命令以检查纱线的当前版本:

$ yarn --version

2
同样适用于OSX
El'Magnifico

在git bash上工作,但yarn --version在命令提示符下运行时显示相同的旧版本。
Niraj Niroula



19

npm install -g yarn -解决了什么都没发生的问题 npm update --global yarn

更新毛线的替代方法: curl --compressed -o- -L https://yarnpkg.com/install.sh | bash

具有自制软件的Mac用户可以运行 brew upgrade yarn

这里这里有更多细节。


如果npm update --global yarn没有用,但是npm install -g yarn有可能它不是npm最初安装的。
杰西普罗克斯

谢谢,对我有用。从纱线1.19.1升级到纱线1.22.4
sajin tm

16

我有一个过时的符号链接,阻止了我访问正确的bin。最近,我还进行了节点升级,这意味着我的许多新箱位于其他文件夹中,而我认为这是较低的优先级

这对我有用:

yarn -v 
> 1.15.2

which yarn
> /Users/lfender/.yarn/bin/yarn 

rm -rf /Users/lfender/.yarn/bin/yarn
npm uninstall --global yarn; npm install --global yarn

> + yarn@1.16.0
> added 1 package in 0.179s

which yarn
> /Users/lfender/.nvm/versions/node/v12.2.0/bin/yarn

yarn -v
> 1.16.0

如果您不使用NVM,则bin安装的位置可能是系统唯一的

从那里开始,我已yarn policies set-version按照此处概述的步骤进行操作https://stackoverflow.com/a/55278430/1426788在回购级别定义我的纱线版本



5
  1. 添加纱线包目录:

curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add - echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list

  1. 安装纱:

sudo apt-get update && sudo apt-get install yarn

请注意,如果已经安装了软件包,则最后一个命令将将yarn升级到最新版本。

有关更多信息,您可以检查文档:yarn installation


1
该解决方案在具有zsh的Windows 10 ubuntu WSL终端上为我工作。
segu

如果已yarn使用进行安装,则此解决方案有效apt-get。它对我有效Ubuntu 16.04
eyong kevin

0

我在需要最新纱线的詹金斯管道中尝试了所有上述解决方案。最后,这对我有用。

  1. 在git repo中运行yarn策略set-version
  2. 这将生成.yarn / releases / yarn-XXXjs文件和.yarnrc文件。将这两个文件都推送到Git仓库中。
  3. 现在构建,所有的yarn命令将使用yarn-XXX版本。

注意:当您无权访问npm install -g yarn时,这很有用。


-6

因为您已经安装了yarn,并且只想升级/更新。你可以简单地使用

yarn self-update

在这里找到参考https://yarnpkg.com/en/docs/cli/self-update


1
这不是解决方案。如果您检查了该页面,则显示“注意:不能进行自我更新。请参阅在项目中强制执行版本的策略”
Emobe

他们为什么还要拥有页面?令人困惑。
Julix

为什么这甚至是一页。它也是Google排名页面。嗯..
GN。
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.