【问题标题】:React-Native: React could not be found within project or in these directoriesReact-Native:在项目或这些目录中找不到 React
【发布时间】:2020-02-17 20:36:58
【问题描述】:

我们已将我们的 react native 项目升级到带有 react (16.9.0) 的最新 react native 版本 (v0.61.2),它在 android 上运行良好。 当我们尝试在 ios 上运行它时,我们得到消息:

warning: the transform cache was reset. Loading dependency graph, done. error: bundling failed: Error: Unable to resolve module `React` from `ios/Pods/React/Libraries/react-native/react-native.js`: React could not be found within the project or in these directories:   node_modules

If you are sure the module exists, try these steps:
 1. Clear watchman watches: watchman watch-del-all
 2. Delete node_modules: rm -rf node_modules and run yarn install
 3. Reset Metro's cache: yarn start --reset-cache
 4. Remove the cache: rm -rf /tmp/metro-*

我们已遵循升级指南,将所有依赖项更新到最新版本并更新了 pod。 我实际上不知道从哪里或如何开始调试它,因为这似乎来自 Pods 文件夹。

这是我们的 Pods 文件夹的内容:

ls ios/Pods/
Adjust              GoogleDataTransport
Crashlytics         GoogleDataTransportCCTSupport
DoubleConversion        GoogleUtilities
Fabric              Headers
Firebase            Local Podspecs
FirebaseABTesting       Manifest.lock
FirebaseAnalytics       Pods.xcodeproj
FirebaseAnalyticsInterop    Protobuf
FirebaseCore            Pushwoosh
FirebaseCoreDiagnostics     PushwooshInboxUI
FirebaseCoreDiagnosticsInterop  React
FirebaseDynamicLinks        Target Support Files
FirebaseInstanceID      boost-for-react-native
FirebaseRemoteConfig        glog
Folly               nanopb
GoogleAppMeasurement

在我们的 node_modules 文件夹中,我们有(以及更多其他包):

...
react
depd                        react-deep-force-update
des.js                      react-devtools-core
destroy                     react-is
detect-libc                 react-lifecycles-compat
detect-newline              react-native
...

当然,我已经尝试了所有步骤,例如清除缓存、重置缓存、清除 DerivedData、清理和构建…… 我不知道从哪里开始寻找。

【问题讨论】:

  • 这里完全一样。

标签: ios objective-c reactjs xcode react-native


【解决方案1】:

我不知道您是否尝试更新您的 pod,但您可以尝试在您的 ios/ 文件夹中执行以下操作:

pod repo update && pod install

这可能会有所帮助。

【讨论】:

    【解决方案2】:

    上周我也遇到了这个问题,是因为react path改变了。

    打开你的 ios 文件夹 Podfile,编辑反应路径。它已经进入 react-native

     pod 'React', :path => '../node_modules/react-native/'
     pod 'React-Core', :path => '../node_modules/react-native/'
    

    然后 cd ios 文件夹并在终端中运行 pod install

    如上,如果遇到其他升级问题,可以去this site比较相关文件

    【讨论】:

    • 我已经按照上述进行了更改,但它显示错误为 Fetching podspec for BVLinearGradient from ../node_modules/react-native/react-native-linear-gradient [!] No podspec found for BVLinearGradient in ../node_modules/react-native/react-native-linear-gradient
    • @sejn,一样,Podfile 中不存在 react-native-linear-gradient。根据 API(npmjs.com/package/react-native-linear-gradient);添加这个pod 'BVLinearGradient', :path => '../node_modules/react-native-linear-gradient'
    • [!] 无法找到 React-Core 依赖于 rn-fetch-blob 的规范 [!] 自动分配平台 ios 与目标 8.0 上的版本 App 因为没有指定平台.请在您的 Podfile 中为此目标指定一个平台。见https://guides.cocoapods.org/syntax/podfile.html#platform
    • @sejn modify rn-fetch-blob.podspec: s.dependency 'React-Core' .you 也可以在 termail 中运行 grep -rl "s.dependency 'React/Core'" node_modules/ | xargs sed -i '' 's=React/Core=React-Core=g'
    • 我需要在 podfile 中更改为 s.dependency 'React-Core'
    【解决方案3】:

    尝试删除ios 目录下的Pod folderPodfile.lock。然后再次运行pod install

    这对我有用。

    【讨论】:

      【解决方案4】:

      我知道这不是一个最佳解决方案,但是我花了一个多星期的时间在这个兔子洞上摸索,但无济于事。最后,我生成了一个新的 RN 项目,复制了我的 app 文件夹并重新安装了大约 20 个我使用的包,然后复制了我的旧 App.js、index.js、AndroidManifest、Appdelegate.m、Info.plist、build.gradle x 2,图标和XIB,以及一些模块的杂项安装说明,即FBSDK和Firebase。现在一切正常。似乎手动更新所有这些文件以从 0.60 的过程中的某些内容会导致某些问题。请注意,此游戏耗时约 8 小时。

      【讨论】:

        【解决方案5】:

        从 v0.60.3 升级到 v0.61.4 时,我遇到了同样的错误。

        我需要改变

        import React, { Component } from 'React';
        

        import React, { Component } from 'react';
        

        注意小写的“r”。

        【讨论】:

        • 谢谢,为我工作。在目标 js 文件中将 Cap R 更改为 small r
        【解决方案6】:

        我通过替换来修复它

        import Foobar from "screens/foobar";
        

        import Foobar from "./screens/foobar";
        

        注意路径中的开头./

        【讨论】:

          猜你喜欢
          • 2022-11-12
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2016-12-31
          • 2020-03-24
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多