首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >获得YN0028锁文件将被此安装修改,这是明确禁止的。用浆果和赫鲁库

获得YN0028锁文件将被此安装修改,这是明确禁止的。用浆果和赫鲁库
EN

Stack Overflow用户
提问于 2021-04-12 16:40:23
回答 3查看 10.5K关注 0票数 17

我用的是纱浆果和heroku,而且一直都有错误:

代码语言:javascript
运行
复制
       ➤ YN0028: │ The lockfile would have been modified by this install, which is explicitly forbidden.

这意味着我的锁文件并不包含我列出的所有依赖项。在纱线文档中,它说,通过运行yarn install并将新的锁文件推到git上,这是很容易解决的。然而,我尝试了这个,尝试了新鲜的node_modules,等等,没有运气。

有没有其他人使用纱线浆果+ heroku经历过这个问题?

我的回购是一个使用工作区的单一功能。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 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错误将停止发生。

票数 20
EN

Stack Overflow用户

发布于 2022-06-30 12:50:08

如果您的ENV不包含任何CI变量,则为

那就可以是你的纱线配置:

运行yarn config get enableImmutableInstalls并查看是否启用了它。(还可以通过运行yarn config --why和查找enableImmutableInstalls来检查启用它的原因)。

如果是true,那么运行yarn config set -H enableImmutableInstalls false来全局设置设置的值(或者不使用-H参数将其仅在当前项目中设置)

票数 1
EN

Stack Overflow用户

发布于 2022-05-16 08:21:27

我遇到了同样的问题。我通过删除缓存,然后重新安装依赖项来解析dit。

然后,在重新安装完成时修改yarn.lock文件。

我相信这可能是因为我最初签入了cache文件夹,然后恢复了它。不确定这是否造成了我的本地环境和签入回购之间的差异。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67062308

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档