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 && brew install yarn) || brew upgrade yarn
请注意,通过brew
安装yarn
也会安装node
。例如,如果您使用的是nvm
或n
,这可能是不受欢迎的。
@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 && sudo apt-get install yarn
请注意,如果软件包已经安装,最后一条命令会将 yarn 升级到最新版本。
有关更多信息,您可以查看文档:yarn installation
【讨论】:
这个解决方案在带有 zsh 的 Windows 10 ubuntu WSL 终端上为我工作。 如果您安装了yarn
和apt-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 >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:如何使用终端升级纱线版本?的主要内容,如果未能解决你的问题,请参考以下文章