getting YN0028 锁定文件将被此安装修改,这是明确禁止的。使用 yarn berry 和 heroku
getting YN0028 The lockfile would have been modified by this install, which is explicitly forbidden. using yarn berry and heroku
我正在使用 yarn berry 和 heroku,但一直收到错误消息:
➤ YN0028: │ The lockfile would have been modified by this install, which is explicitly forbidden.
这表明我的锁定文件不包含我列出的所有依赖项。在 yarn 文档中,它说这很容易通过 运行 yarn install
并将新的锁定文件推送到 git 来解决。但是我已经尝试过这个,尝试过新鲜的 node_modules,等等,但没有成功。
有没有其他人在使用 yarn berry + heroku 时遇到过这个问题?
我的存储库是一个使用工作空间的单一存储库。
我能够按照建议 here.
将环境变量 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 worspaces 之一被签入 git 作为 git 子模块(我可能用一个嵌套的 .git/
文件夹,然后将其删除)。结果,工作区内容,包括子 package.json
没有提交到回购中,它只存在于我的本地回购中而不存在于远程和 CI.
删除 git 子模块并将工作区正确检查到存储库后,YN0028
错误停止发生。
我 运行 遇到了同样的问题。我通过删除缓存然后重新安装依赖项来解决问题。
yarn.lock
文件在重新安装完成时进行了修改。
我相信这可能是因为我最初检查了 cache
文件夹,然后将其还原。不确定这是否会导致我的本地环境与 checked-in 存储库之间存在差异。
我正在使用 yarn berry 和 heroku,但一直收到错误消息:
➤ YN0028: │ The lockfile would have been modified by this install, which is explicitly forbidden.
这表明我的锁定文件不包含我列出的所有依赖项。在 yarn 文档中,它说这很容易通过 运行 yarn install
并将新的锁定文件推送到 git 来解决。但是我已经尝试过这个,尝试过新鲜的 node_modules,等等,但没有成功。
有没有其他人在使用 yarn berry + heroku 时遇到过这个问题?
我的存储库是一个使用工作空间的单一存储库。
我能够按照建议 here.
将环境变量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 worspaces 之一被签入 git 作为 git 子模块(我可能用一个嵌套的 .git/
文件夹,然后将其删除)。结果,工作区内容,包括子 package.json
没有提交到回购中,它只存在于我的本地回购中而不存在于远程和 CI.
删除 git 子模块并将工作区正确检查到存储库后,YN0028
错误停止发生。
我 运行 遇到了同样的问题。我通过删除缓存然后重新安装依赖项来解决问题。
yarn.lock
文件在重新安装完成时进行了修改。
我相信这可能是因为我最初检查了 cache
文件夹,然后将其还原。不确定这是否会导致我的本地环境与 checked-in 存储库之间存在差异。