我用的是纱浆果和heroku,而且一直都有错误:
➤ YN0028: │ The lockfile would have been modified by this install, which is explicitly forbidden.
这意味着我的锁文件并不包含我列出的所有依赖项。在纱线文档中,它说,通过运行yarn install
并将新的锁文件推到git上,这是很容易解决的。然而,我尝试了这个,尝试了新鲜的node_modules,等等,没有运气。
有没有其他人使用纱线浆果+ heroku经历过这个问题?
我的回购是一个使用工作区的单一功能。
发布于 2021-05-28 14:27:57
我能够通过将env-var YARN_ENABLE_IMMUTABLE_INSTALLS
设置为false
来解决问题,就像建议的这里一样。
这很可能是雅恩·贝里的一个问题。我在这里报告过:https://github.com/yarnpkg/berry/issues/2948
UPD:我从GitHub创建了一个新的回购的本地克隆,在其中运行yarn install
,它确实产生了yarn.lock
中的变化。提交这些更改解决了CI问题,因此禁用YARN_ENABLE_IMMUTABLE_INSTALLS
对我来说不再是必要的。
原来的本地回购显示了一个干净的git status
,所以我仍然相信它是一个错误。
UPD 2:我的问题是其中一个作为git子模块被签入了git (我可能用一个嵌套的.git/
文件夹创建了它,然后删除了它)。因此,工作区内容,包括一个子package.json
没有提交到回购,它只存在于我的本地回购,而不是在远程和CI上。
删除git子模块并正确地将工作区检查到回购后,YN0028
错误将停止发生。
发布于 2022-06-30 12:50:08
如果您的ENV不包含任何CI变量,则为:
那就可以是你的纱线配置:
运行yarn config get enableImmutableInstalls
并查看是否启用了它。(还可以通过运行yarn config --why
和查找enableImmutableInstalls
来检查启用它的原因)。
如果是true
,那么运行yarn config set -H enableImmutableInstalls false
来全局设置设置的值(或者不使用-H
参数将其仅在当前项目中设置)
发布于 2022-05-16 08:21:27
我遇到了同样的问题。我通过删除缓存,然后重新安装依赖项来解析dit。
然后,在重新安装完成时修改yarn.lock
文件。
我相信这可能是因为我最初签入了cache
文件夹,然后恢复了它。不确定这是否造成了我的本地环境和签入回购之间的差异。
https://stackoverflow.com/questions/67062308
复制相似问题