【问题标题】:How do I prevent react-native-device-info causing React ambiguity on my setup?如何防止 react-native-device-info 在我的设置中导致 React 歧义?
【发布时间】:2018-10-10 09:44:23
【问题描述】:

我在将 react-native-device-info 安装到现有的 react-native 项目(使用 create-react-native-app 创建然后弹出)时遇到问题

我跑:

yarn add react-native-device-info yarn install react-native link react-native-device-info cd ios && pod install & cd ..

pod install 安装RNDeviceInfo,但也安装React 作为依赖项?

然后我照常运行yarn ios

MetroBundler 失败:

``` 此警告是由跨两个不同文件的具有相同名称的 @providesModule 声明引起的。 加载依赖图,完成。 错误:捆绑失败:不明确的解决方案:模块/Users/thomasclarke/dev/mobile-notifications-native/index.js 尝试要求react-native,但有几个文件提供此模块。您可以删除或修复它们:

  • /Users/thomasclarke/dev/mobile-notifications-native/ios/Pods/React/package.json
  • /Users/thomasclarke/dev/mobile-notifications-native/node_modules/react-native/package.json ```

我提出了一个错误报告,因为这显然是不可接受的行为,但我可以通过我的设置解决这个问题吗?

【问题讨论】:

  • 感谢@chris-feist 的回答!

标签: ios react-native cocoapods react-native-device-info


【解决方案1】:

事实证明,您可以链接到 node_modules 中的 react-native,它提供了必要的依赖项。在现有项目中默认没有这样做,所以这里是过程:

1) 从“干净”开始(例如,没有react-native-device-info 行为)。在此之前搞砸了,我还发现我必须清除我的 node_modules 和我的 ios/Pods 目录才能清除遗留的 React 包。

2) 更新您的 Podfile 以链接到 React(您还必须添加任何 relevant subspecs 和一个单独的 Yoga pod)

以下是要添加到 podfile 的行: pod 'React', :path => '../node_modules/react-native', :subspecs => [ 'DevSupport', 'Core', 'RCTAnimation', 'RCTImage', 'RCTLinkingIOS', 'RCTSettings', 'RCTText' ] pod 'yoga', :path => '../node_modules/react-native/ReactCommon/yoga'

3) 然后运行react-native link react-native-device-info

这会将 react-native-device-info 添加到您的 Podfile(以及 android 设置)

pod 'RNDeviceInfo', :path => '../node_modules/react-native-device-info'

4) 一切正常安装: yarn install cd ios pod install

你现在应该有一个正常运行的构建!

【讨论】:

  • 对不起先生。是否可以在这里将您的解决方案应用于我的问题?只是觉得可能是同一个问题stackoverflow.com/questions/53537990/…
  • @jerinho 看起来确实很相似,我建议备份您的项目并试一试。
猜你喜欢
  • 2022-01-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-11-25
  • 2022-06-15
  • 1970-01-01
相关资源
最近更新 更多