Tev*_*own 37 heroku yarnpkg heroku-ci
我使用yarn berry 和heroku 并不断收到错误:
\n \xe2\x9e\xa4 YN0028: \xe2\x94\x82 The lockfile would have been modified by this install, which is explicitly forbidden.\n
Run Code Online (Sandbox Code Playgroud)\n这表明我的锁定文件不包含我列出的所有依赖项。在纱线文档中,它说这可以通过运行轻松解决yarn install
新的锁定文件并将其推送到 git 可以轻松解决这个问题。不过我已经尝试过这个,尝试使用新的node_modules等,但没有成功。
有其他人使用yarn berry + heroku遇到过这个问题吗?
\n我的存储库是使用工作区的单一存储库。
\nAnd*_*aus 36
我可以通过将 env-var 设置YARN_ENABLE_IMMUTABLE_INSTALLS
为 来解决此问题false
,如此处建议的那样。
这可能是 Yarn Berry 中的一个错误。我已在这里报告:https ://github.com/yarnpkg/berry/issues/2948
\nUPD :我从 GitHub创建了该存储库的一个新的本地克隆yarn install
,并在其中运行,它确实在yarn.lock
. 提交这些更改解决了 CI 问题,因此YARN_ENABLE_IMMUTABLE_INSTALLS
我不再需要禁用它。
原始的本地存储库显示干净git status
,所以我仍然相信这是一个错误。
UPD 2:我的问题是,其中一个 Yarn 工作空间已作为 git 子模块签入 git(我可能使用嵌套.git/
文件夹创建了它,然后将其删除)。因此,工作区内容(包括子项)package.json
未提交到存储库中,它仅存在于我的本地存储库中,而不存在于远程和 CI 中。
删除 git 子模块并将工作区正确签入存储库后,YN0028
错误停止发生。
rea*_*pee 10
如果您的 ENV 不包含任何 CI 变量:
那么它可能是你的纱线配置:
运行一下yarn config get enableImmutableInstalls
看看是否启用了。yarn config --why
(您还可以通过运行并查找来检查为什么启用它enableImmutableInstalls
)。
如果是true
,则运行yarn config set -H enableImmutableInstalls false
以全局设置该设置的值(或者不带-H
参数仅在当前项目中设置它)
归档时间: |
|
查看次数: |
31580 次 |
最近记录: |