9

我正在使用 yarn berry 和 heroku 并不断收到错误:

       ➤ YN0028: │ The lockfile would have been modified by this install, which is explicitly forbidden.

这表明我的锁定文件不包含我列出的所有依赖项。在纱线文档中,它说这很容易通过运行yarn install并将新的锁定文件推送到 git 来解决。但是我已经尝试过,尝试过使用新的 node_modules 等,但没有运气。

有没有其他人使用 yarn berry + heroku 遇到过这个问题?

我的 repo 是一个使用工作区的 monorepo。

4

1 回答 1

5

我可以通过将 env-var 设置为 来解决YARN_ENABLE_IMMUTABLE_INSTALLS问题,false如此处所建议

这可能是 Yarn Berry 中的一个错误。我在这里报告过:https ://github.com/yarnpkg/berry/issues/2948


UPD:我从 GitHub创建了一个新的本地仓库克隆,yarn install在其中运行,它确实在yarn.lock. 提交这些更改解决了 CI 问题,因此YARN_ENABLE_IMMUTABLE_INSTALLS我不再需要禁用。

原来的本地 repo 显示为 clean git status,所以我仍然认为这是一个错误。

UPD 2:我的问题是 Yarn 工作空间之一已作为 git 子模块签入 git(我可能使用嵌套.git/文件夹创建了它,然后将其删除)。结果,工作区内容(包括子package.json项)没有提交到存储库中,它只存在于我的本地存储库中,而不存在于远程和 CI 中。

删除 git 子模块并将工作区正确检查到 repo 后,YN0028错误停止发生。

于 2021-05-28T14:27:57.683 回答