GitHub Actions上的Yarn安装失败

4

我们有一个基于Yarn的单库,使用最新的Yarn版本3.2.0。我们在GitHub工作流中执行yarn install时出现了失败,但没有任何调试日志:

Run yarn install
➤ YN0000: ┌ Resolution step
Resolution step
➤ YN0000: └ Completed in 1s

➤ YN0000: ┌ Post-resolution validation
Post-resolution validation
➤ YN0000: └ Completed in 0s 226ms
➤ YN0000: Failed with errors in 1s 236ms

当我们团队的大多数成员生成 yarn.lock 文件时,会出现这种情况,但是有一名团队成员能够生成一个在工作流中有效的 yarn.lock。奇怪的是,他的设置与大多数其他开发人员非常相似(MBP,Node 16)。

有什么想法可以解决这个问题以及如何获取更多信息吗?


2
--verbose 添加到命令中,这样您就可以更好地记录yarn的日志。现在它几乎可以是任何东西。 - Karl-Johan Sjögren
运行 yarn install --verbose 4 未知语法错误:不支持的选项名称(“--verbose”)。 56 $ yarn install [--json] [--immutable] [--immutable-cache] [--check-cache] [--inline-builds] [--mode #0] 7 错误:进程以退出代码1完成。 - rhlsthrm
嗯,看起来他们删除了“经典” Yarn 中可用的冗长标志。不过应该有某种设置可以获得更多的日志记录,你需要查阅文档来找到它。 - Karl-Johan Sjögren
也遇到了这个问题。@rhlsthrm,你找到解决方案了吗? - buildc0de
哦!刚在这里发现了你的提交:https://github.com/connext/nxtp/commit/3b06c9bfc75946f7a79b03b7dc24bb135ce64122。看起来checksumBehavior: "update"就可以解决问题了?我会添加答案的。 - buildc0de
2个回答

6
默认情况下,Yarn会在yarn install时检测到包的校验和与锁定文件中存储的校验和不匹配时,抛出异常。要解决此问题:
  1. 打开你的.yarnrc.yml
  2. 添加以下配置选项:

checksumBehavior: "update"


1
我们不能只使用 --frozen-lockfile 来完全忽略锁定文件吗? - Marian Klühspies
--frozen-lockfile已被弃用。请使用--immutable。 - undefined

2
为解决此问题,请将 Yarn 升级到版本 3.2.4 或更高版本。

背景:

在旧版的 Yarn 3 中存在 一些问题,导致校验和检查失败 - 升级将解决此问题。


你如何确定 Github Actions 正在使用哪个版本的 Yarn?文档不够清晰。 - Caleb Jay
现代的 Yarn 会使用你的 .yarn 目录下的任何版本。这也应该在 package.jsonpackageManager 下明确声明。 - Michael Liu
安装特定版本的yarn:yarn set version <version>;例如,yarn set version 3.2.4yarn set version stableyarn set version latest - Datow King

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接