【问题标题】:"react-native eject": Unrecognized command "eject"“反应原生弹出”:无法识别的命令“弹出”
【发布时间】:2019-07-07 13:12:35
【问题描述】:

我正在尝试为我的 react-native 项目重新创建 ios 和 android 文件夹。据我所知,这是通过以下命令完成的:

react-native eject

但我得到了错误:

error Unrecognized command "eject".

我做错了什么?我应该如何重新创建 android 和 ios 文件夹?

react-native-cli: 2.0.1

【问题讨论】:

  • AFAIK 你不使用弹出来做到这一点

标签: react-native


【解决方案1】:
npm i react-native-eject
npm i @react-native-community/cli
react-native eject

会同时生成android和ios文件夹

【讨论】:

    【解决方案2】:

    它在 0.59.9 中确实有效。今天早上我升级到 0.60 后,这也让我感到震惊。显然你现在必须运行react-native upgrade --legacy truereact-native eject 更容易恕我直言。

    【讨论】:

    • 这现在也不再有效 - error: unknown option '--legacy'
    【解决方案3】:

    尼基塔是 100% 正确的。如果项目在 expo 中初始化,则运行 react native eject 将从 expo 依赖项(和 expo 环境)中“弹出”项目,并在 expo 环境之外创建一个独立的 react native 项目。这通常会调整 pakage.json 文件中的依赖关系。

    该命令作为 expo 的一部分存在。

    从头开始初始化项目react-native init 将创建 android 和 ios 文件夹。还要确保您是否已克隆目录以运行 npm installyarn 以安装依赖项。

    如果项目按照我想象的方式初始化,那么您正在寻找的命令将是以下之一: react-native run iosreact-native run ios --device react-native run androidreact-native run android --device

    【讨论】:

      【解决方案4】:

      对于由 react-native init 发起的 RN 项目,没有这样的命令,默认情况下,RN 使用 Metro bundler 而不是 Web 版的 React,您可以在其中配置 Parcel/Webpack/Rollup 或运行 create-react-app可以弹出。 这个问题适合expo,如果你需要一些没有包含在expo中的原生模块,你可以实际弹出。

      尝试使用expo

      【讨论】:

        【解决方案5】:

        react-native ejectupgrade --legacy true 不适合我。

        最后,我刚刚创建了一个新的空白 RN 项目,其中有一个 ios 文件夹。将文件夹复制到我现有的项目中,并且......似乎可以工作。

        【讨论】:

          【解决方案6】:
          yarn add react-native-eject
          react-native eject
          

          这两行代码解决了我的弹出错误问题。

          【讨论】:

          • 不要在答题部分。
          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2018-12-12
          • 2018-08-19
          • 1970-01-01
          • 1970-01-01
          • 2014-02-24
          相关资源
          最近更新 更多