“反应原生弹出”:无法识别的命令“弹出”

Posted

技术标签:

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

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

react-native eject

但我得到了错误:

error Unrecognized command "eject".

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

react-native-cli: 2.0.1

【问题讨论】:

AFAIK 你不使用弹出来做到这一点 【参考方案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

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

【讨论】:

不要在答题部分。

以上是关于“反应原生弹出”:无法识别的命令“弹出”的主要内容,如果未能解决你的问题,请参考以下文章

gcc:错误:无法识别的命令行选项“-mfpu=neon-vfpv4”

Swift:手势识别器无法识别的选择器发送到实例

“ValueError:无法识别的标记样式'hline'”。 Matplotlib plot() 和 scatter() 函数无法识别一堆标记

如何修复:“无法识别的令牌'无法识别':期待('true','false'或'null')”使用Horton schema-registry

Swift 3:将无法识别的选择器发送到手势识别器实例

快速代码崩溃:“发送到实例的无法识别的选择器”