菜鸟教程小白 发表于 2022-12-12 14:58:32

ios - 如何防止 react-native-device-info 在我的设置中导致 React 歧义?


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

<p>我跑:</p>

<p><code>
yarn 添加 reactnative 设备信息
yarn 安装
react-native 链接 react-native-device-info
cd ios && pod 安装 & cd ..
</code></p>

<p>pod install 安装<code>RNDeviceInfo</code>,还安装<code>React</code>作为依赖?</p>

<p>然后我照常运行 <code>yarn ios</code>。</p>

<p>MetroBundler 失败:</p>

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

<ul>
<li><code>/Users/thomasclarke/dev/mobile-notifications-native/ios/Pods/React/package.json</code></li>
<li><code>/Users/thomasclarke/dev/mobile-notifications-native/node_modules/react-native/package.json</code>
```</li>
</ul>

<p>我提出了错误报告,因为这显然是 Not Acceptable 行为,但我可以通过我的设置解决这个问题吗?</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>事实证明,您可以链接到 node_modules 中的 react-native,它提供了必要的依赖项。在现有项目中默认没有这样做,所以这里是过程:</p>

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

<p>2) 更新您的 Podfile 以链接到 React(您还必须添加任何 <a href="https://stackoverflow.com/questions/52775976/how-can-i-know-which-react-native-pod-subspecs-to-add" rel="noreferrer noopener nofollow">relevant subspecs</a> 和一个单独的 Yoga pod)</p>

<p>以下是要添加到 podfile 的行:
<code>
pod 'React', :path => '../node_modules/react-native', :subspecs => [
    '开发支持',
    '核',
    'RCT动画',
    'RCT图像',
    'RCTLinkingIOS',
    'RCT设置',
    'RCTText'
]
pod 'yoga', :path => '../node_modules/react-native/ReactCommon/yoga'
</code></p>

<p>3) 然后运行 ​​<code>react-native link react-native-device-info</code></p>

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

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

<p>4) 一切正常安装:
<code>
yarn 安装
光盘
pods 安装
</code></p>

<p>你现在应该有一个正常运行的构建!</p></p>
                                   
                                                <p style="font-size: 20px;">关于ios - 如何防止 react-native-device-info 在我的设置中导致 React 歧义?,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/52737251/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/52737251/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - 如何防止 react-native-device-info 在我的设置中导致 React 歧义?