我最近制作了一个应用程序,并尝试为 TestFlight 构建该应用程序。
在我的应用程序中,我开始使用 react-native-svg-charts 它使用 react-native-svg.
这些是我的 package.json 中的版本: "react-native-svg":"^15.3.0"、 "react-native-svg-charts": "^5.4.0"、 "react-native-chart-kit":"^6.12.0",
当我执行 npx expo start 时,我可以看到应用程序正在运行,而且一切正常: eas build --platform iOS
然后构建失败,因为:
在 /Users/expo/workingdir/build 目录中运行 "npm install"。
npm
代码 ERESOLVE
npm ERR!
无法解决
npm ERR!
npm
ERR!正在解析: [email protected]
npm ERR!找到: [email protected]
npm ERR!
npm ERR! root 项目中的 react-native-svg@"^15.3.0"
npm ERR! peer react-native-svg@"> 6.4.1" from [email protected]
npm ERR!
npm ERR!react-native-chart-kit@"^6.12.0"来自根项目
npm ERR! 多 1 个 (react-native-gifted-charts)
npm ERR!
npm ERR!无法解析依赖关系:
npm ERR! peer react-native-svg@"^6.2.1||^7.0.3" from [email protected]
npm ERR!
npm ERR! react-native-svg-charts@"^5.4.0" 源自根项目
npm ERR!
npm ERR!冲突的对等依赖关系:[email protected]
npm
ERR! node_modules/react-native-svg
npm ERR! peer react-native-svg@"^6.2.1||^7.0.3" from [email protected]
npm ERR!
npm ERR! react-native-svg-charts@"^5.4.0" 源自根项目
npm ERR!
npm ERR!修复上游依赖关系冲突,或重试
npm ERR!
npm ERR! 接受不正确的(可能已损坏的)依赖关系解析。
npm ERR!
npm ERR!
npm ERR!有关完整报告,请参阅
npm ERR!/Users/expo/.npm/_logs/2024-06-16T18_10_33_225Z-eresolve-report.txt
npm ERR!此运行的完整日志可在/Users/expo/.npm/_logs/2024-06-16T18_10_33_225Z-debug-0.log
npm install 以非零代码退出:1
当我执行 npm install 时,我得到:
npm ERR!
npm ERR!无法解决
npm ERR!
npm ERR!正在解析:[email protected]
npm ERR!找到: [email protected]
npm ERR!
npm ERR! root 项目中的 react-native-svg@"^15.3.0"
npm ERR! peer react-native-svg@"> 6.4.1" from [email protected]
npm ERR!
npm ERR!react-native-chart-kit@"^6.12.0"来自根项目
npm ERR! 多 1 个 (react-native-gifted-charts)
npm ERR!
npm ERR!无法解析依赖关系:
npm ERR! peer react-native-svg@"^6.2.1||^7.0.3" from [email protected]
npm ERR!
npm ERR! react-native-svg-charts@"^5.4.0" 源自根项目
npm ERR!
npm ERR!冲突的对等依赖关系:[email protected]
npm ERR!
npm ERR! peer react-native-svg@"^6.2.1||^7.0.3" from [email protected]
npm ERR!
npm ERR! react-native-svg-charts@"^5.4.0" 源自根项目
npm ERR!
npm ERR!修复上游依赖关系冲突,或重试
npm ERR!
npm ERR! 接受不正确的(可能已损坏的)依赖关系解析。
npm ERR!
npm ERR!
npm ERR!有关完整报告,请参阅
npm ERR!/Users/niloufar/.npm/_logs/2024-06-16T18_14_27_517Z-eresolve-report.txt
npm ERR!本次运行的完整日志可在以下位置找到:/Users/niloufar/.npm/_logs/2024-06-16T18_14_27_517Z-debug-0.log
因此,如果我这样做,就会出现一些依赖性问题: npm uninstall react-native-svg
npm i [email protected]
然后我就可以进行 npm 安装了,但是当我进行 npx expo start 时,我得到的结果是:
Invariant Violation: "main" has not been registered.这种情况可能发生在以下情况* 从错误的文件夹运行 Metro(本地开发服务器)。检查 Metro 是否正在运行,停止它并在当前项目中重新启动。* 由于错误导致模块加载失败,且未调用 `AppRegistry.registerComponent`。
我没有主意了,我不知道该怎么办,无论我做什么都会出错。 我需要不使用 react-native-svg-charts 吗? 请帮助我。
看来你的问题是由于项目中不同软件包的
react-native-svg
版本不一致造成的。以下是如何解决此问题的方法:
理解问题:
-
对等依赖关系:
react-native-svg-charts
和react-native-chart-kit
都依赖于react-native-svg
,但它们需要不同的版本。 -
版本不匹配:
react-native-chart-kit
需要react-native-svg
版本> 6.4.1
,而react-native-svg-charts
需要版本^6.2.1||^7.0.3
。你当前的react-native-svg
版本15.3.0
满足了react-native-chart-kit
的要求,但不满足react-native-svg-charts
的要求。
解决方案:
目标是找到一个与所有三个软件包兼容的
react-native-svg
版本。由于
react-native-svg-charts
支持
react-native-svg
版本 7,让我们尝试一下:
- 安装依赖项:
bash
npm install [email protected] [email protected] [email protected]
这将安装所有三个软件包及其特定版本。
- 清除缓存并重新启动:
有时,npm 或 yarn 缓存可能会导致问题。清除缓存并重新启动你的开发服务器:
bash
npx react-native start --reset-cache
- 验证安装:
安装完成后,请检查
package.json
文件,确保所有软件包都已更新为正确的版本:
json
"dependencies": {
"react-native-svg": "7.2.1",
"react-native-svg-charts": "5.4.0",
"react-native-chart-kit": "6.12.0",
...
}
- 如果问题仍然存在:
-
检查
react-native-gifted-charts
(在你的错误日志中提到)是否也依赖于react-native-svg
,如果是,请尝试找到一个与其兼容的版本。 - 作为最后的手段,你可能需要考虑使用其他图表库,或者在没有版本冲突的情况下手动解决依赖关系问题。
其他建议:
- 始终密切关注你的依赖关系,并尝试使用兼容的版本。
-
使用 npm 或 yarn 的版本锁定功能(如
package-lock.json
或yarn.lock
)来防止意外的版本更新。
希望这些步骤能帮助你解决问题!如果仍然遇到问题,请提供更多上下文信息,例如你的
package.json
文件的完整内容和任何其他错误消息,以便我提供更具体的帮助。