我正在努力
react-native 0.75.2
yarn 3.6.4
node 20
在我的项目中,我有一个本机模块依赖项,它位于我的项目文件夹内。我的
package.json
看起来像
"dependencies": {
....,
"react-native-my-native-mod": "file:native_modules/react-native-my-native-mod",
}
在
gitlab-runner
中,它正在创建一个错误,因为在gitlab-ci.yml
中,我有像这样的脚本
yarn install --immutable
错误是
"The lockfile would have been modified by this install, which is explicitly forbidden."
它显示了我的本机模块中的
checksum
差异。
我正在使用
.yarnrc.yml
,看起来像
nodeLinker: node-modules
yarnPath: .yarn/releases/yarn-3.6.4.cjs
我相信,当项目通过yarn install在本地安装时,模块是从我在
package.json
中指定的位置安装的,即file:native_modules/react-native-my-native-mod
但是
gitlab-runner
正在尝试从builds
文件夹安装模块,即
file:builds/0/project-0/native_modules/react-native-my-native-mod
结果,校验和被更改并产生上述错误。
如何解决这个问题?
目录
builds/0/project-0/
是远程仓库的克隆,builds/0/project-0/native_modules/react-native-my-native-mod
的内容与仓库中的native_modules/react-native-my-native-mod
相同。
要修复它,请克隆存储库,然后运行
yarn cache clean --all
yarn install
并将更新的
yarn.lock
推送到存储库。这将解决这个问题。