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

Posted

技术标签:

【中文标题】Yarn:如何使用终端升级纱线版本?【英文标题】:Yarn: How to upgrade yarn version using terminal? 【发布时间】:2018-09-16 06:26:35 【问题描述】:

yarn应该如何升级到最新版本?

【问题讨论】:

【参考方案1】:

适用于所有操作系统

yarn set version latest
yarn set version from sources

对我来说没有第二行,但由于某种原因它在文档中。

Reference

【讨论】:

【参考方案2】:

根据https://yarnpkg.com/getting-started/install#updating-to-the-latest-versions

yarn set version <version>

例如升级yarn v1.22.4到v1.22.10:

yarn set version 1.22.10

【讨论】:

【参考方案3】:

这项工作为我将纱线版本 0.32 git 更改为 1.22.5

https://www.codegrepper.com/code-examples/shell/yarn+0.32+git+ubuntu

【讨论】:

您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center。 虽然此链接可能会回答问题,但最好在此处包含答案的基本部分并提供链接以供参考。如果链接页面发生更改,仅链接答案可能会失效。 - From Review【参考方案4】:

如果您想将您的 yarn 版本从 1.22.5 升级到 1.22.10

纱线政策设置版本

【讨论】:

【参考方案5】:

纱线政策设置版本

这将我的 yarn 版本从 1.22.5 升级到 1.22.10

【讨论】:

【参考方案6】:

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

brew upgrade yarn

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

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

在 Windows 上,使用 Chocolatey 升级

choco upgrade yarn

致谢: 在以下答案的帮助下添加了答案

https://***.com/a/54147594/842607

https://***.com/a/53710422/842607

【讨论】:

标记为 Ubuntu,而不是 MacOs。 Google 在将用户引导至此问题时不会检查标签。 您可以通过以下方式更快地做到这一点:(npm uninstall -g yarn &amp;&amp; brew install yarn) || brew upgrade yarn 请注意,通过brew 安装yarn 也会安装node。例如,如果您使用的是nvmn,这可能是不受欢迎的。 @LucianoBargmann 我在我的 Linux 安装上安装了 brew,所以对于以这种方式升级的少数人来说,这不是一个糟糕的答案。【参考方案7】:

如果你已经有 yarn 1.x 并且你想升级到 yarn 2。你需要做一些不同的事情:

yarn set version berry

其中berry 是纱线版本 2 的代号。有关更多信息,请参阅此迁移指南 here。

【讨论】:

【参考方案8】:

纱线政策设置版本

在powershell中使用上述命令将你当前的yarn版本升级到Latest.它将下载最新的yarn发布

【讨论】:

【参考方案9】:

对于 Windows 用户

我通常用Chocolatey升级Yarn。

choco upgrade yarn

【讨论】:

【参考方案10】:
npm install --global yarn
npm upgrade --global yarn 

这应该可行。

【讨论】:

> 注意:一般不推荐通过 npm 安装 Yarn。使用基于节点的包管理器安装 Yarn 时,包没有签名,唯一执行的完整性检查是基本的 SHA1 哈希,这在安装系统范围的应用程序时存在安全风险。 yarnpkg.com/lang/en/docs/install/#alternatives-stable 我很确定你不能再通过npm 安装/升级纱线,而是至少需要在 OSX 上抛出brew 因为这个问题专门针对 Ubuntu 16.04,所以关于 OSX 和 brew 的 cmets 并不真正相关。我刚刚在 Ubuntu 16.04 上通过 npm upgrade --global yarn 升级了 yarn,我之前通过 npm 安装了 yarn。非常肯定,它仍然是可能的,即使这不是推荐的方式。我通过 npm 安装 yarn 的最初原因是我使用nvm 来保留node 的多个版本。通过apt 安装yarn 将在全球范围内安装特定版本的节点。但是我读到这可以通过参数--no-install-recommends来避免。 @mnishiguchi 您链接的页面不包含引用的文本。其实它包含相反的说法:“建议通过npm包管理器安装Yarn” 也许 2021 年现在情况有所不同¯_(ツ)_/¯【参考方案11】:

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

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

注意:当您没有 npm install -g yarn 的 root 访问权限时,这很有帮助。

【讨论】:

【参考方案12】:

yarn policies set-version

将下载最新的稳定版本

参考的纱线文档 https://yarnpkg.com/lang/en/docs/cli/policies/#toc-policies-set-version

【讨论】:

请注意,您也可以使用此命令指定版本。例如yarn policies set-version 1.21.0 这个命令对我不起作用,它返回错误error Couldn't find a package.json file in "/home/.."【参考方案13】:

我通过从终端运行以下命令在我的 Ubuntu 上更新了 yarn

curl --compressed -o- -L https://yarnpkg.com/install.sh |重击

来源:https://yarnpkg.com/lang/en/docs/cli/self-update

【讨论】:

谢谢梅拉比。源码真的很有用。【参考方案14】:

我有一个过时的符号链接,阻止我访问正确的 bin。我最近还进行了节点升级,这意味着我的许多较新的 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://***.com/a/55278430/1426788 在回购级别定义我的纱线版本

【讨论】:

【参考方案15】:

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

yarn self-update

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

【讨论】:

这不是解决方案。如果您检查了该页面,它会显示“注意:自我更新不可用。请参阅在项目中强制执行版本的政策” 他们为什么会有这个页面?这令人困惑。 为什么这甚至是一个页面。它也是一个谷歌排名页面。呃……【参考方案16】:
    添加纱线包目录:

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

    安装 Yarn:

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

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

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

【讨论】:

这个解决方案在带有 zsh 的 Windows 10 ubuntu WSL 终端上为我工作。 如果您安装了yarnapt-get,则此解决方案有效。它对我有用 Ubuntu 16.04【参考方案17】:

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

yarn policies set-version

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

来自文档:

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

Reference

【讨论】:

另外值得注意的是,这个命令会创建.yarn/.yarnrc 没有全局更新Yarn,只在当前项目中更新。 这个命令对我不起作用,它返回错误:`error Couldn't find a package.json file in "/home/.."` 我猜它不起作用,因为我用apt-get 安装了我的yarn。我认为有可能知道您是如何安装软件包的。对我来说,我做npm list -g &gt;filename.txt,然后我在文件中搜索所需的任何包。对于 apt-get,我执行apt list --installed,然后检查输出是否需要所需的包。【参考方案18】:

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

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

完成此操作后,关闭当前终端并再次打开它。然后,运行以下命令检查纱线当前版本:

$ yarn --version

【讨论】:

也适用于 OSX 在 git bash 上工作,但在命令提示符下运行 yarn --version 时显示相同的旧版本。 @NirajNiroula 您需要重新打开终端才能看到任何更改。 我试过了,不管我是否打开了一个新的终端,它都不起作用。对我来说 npm install --global yarn 在 Ubuntu 中工作【参考方案19】:

npm install -g yarn - 解决了运行npm update --global yarn 时没有发生任何事情的问题。

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

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

更多详情here 和here。

【讨论】:

如果npm update --global yarn 没有工作,但npm install -g yarn 有可能它不是由 npm 一开始就安装的。 谢谢,它对我有用。从 yarn 1.19.1 升级到 yarn 1.22.4

以上是关于Yarn:如何使用终端升级纱线版本?的主要内容,如果未能解决你的问题,请参考以下文章

如何将引导程序 4 升级到引导程序 5? - 纱线

如何在 AWS 部署中使用特定节点版本进行纱线设置?

终端默认为旧的纱线版本(lerna bootstrap)

角度从 8 升级到 9 - 纱线不兼容错误

在 github 上的 Dependabot 警报后升级特定包纱线锁

即使安装后也无法运行任何纱线 cmd