获取 YN0028 锁定文件将已被此安装修改,这是明确禁止的。使用纱线浆果和heroku
Posted
技术标签:
【中文标题】获取 YN0028 锁定文件将已被此安装修改,这是明确禁止的。使用纱线浆果和heroku【英文标题】:getting YN0028 The lockfile would have been modified by this install, which is explicitly forbidden. using yarn berry and heroku 【发布时间】:2021-07-07 18:22:59 【问题描述】:我正在使用 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。
【问题讨论】:
遇到同样的问题。你解决了吗? 【参考方案1】:按照here 的建议,我可以通过将 env-var YARN_ENABLE_IMMUTABLE_INSTALLS
设置为 false
来解决问题。
这可能是 Yarn Berry 中的一个错误。我已经在这里举报了:https://github.com/yarnpkg/berry/issues/2948
UPD:我从 GitHub 创建了一个repo 的新本地克隆,在其中运行了yarn install
,它确实在yarn.lock
中产生了变化。提交这些更改解决了 CI 问题,因此我不再需要禁用 YARN_ENABLE_IMMUTABLE_INSTALLS
。
原始本地 repo 显示干净的git status
,所以我仍然认为这是一个错误。
UPD 2:我的问题是 Yarn 工作空间之一已作为 git 子模块检入 git(我可能使用嵌套的 .git/
文件夹创建了它,然后将其删除)。结果,工作区内容,包括子 package.json
没有提交到仓库中,它只存在于我的本地仓库中,而不存在于远程和 CI 中。
删除 git 子模块并将工作区正确签入 repo 后,YN0028
错误停止发生。
【讨论】:
你好。 YARN_ENABLE_IMMUTABLE_INSTALLS 放在哪里,谢谢 @AlainIb 我已经在这里回复你了:github.com/renovatebot/renovate/discussions/… 是的,我看到了来自 github 的电子邮件通知。非常感谢你。当我关闭当前任务时,我会尽快尝试。祝你有美好的一天以上是关于获取 YN0028 锁定文件将已被此安装修改,这是明确禁止的。使用纱线浆果和heroku的主要内容,如果未能解决你的问题,请参考以下文章
azurew网站持续部署 - Web Deploy无法修改目标上的文件“XXX”,因为它已被外部进程锁定
/var/run/yum.pid 已被锁定,PID 为 XXXX 的另一个程序正在运行。