我在将react-native-device-info
安装到现有的本地反应项目(使用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
```我提出了一个错误报告,因为这显然是不可接受的行为,但是我可以在我的设置中解决此问题吗?
答案 0 :(得分:3)
事实证明,您可以链接到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
现在您应该已经可以正常运行了!