“反应原生弹出”:无法识别的命令“弹出”
Posted
技术标签:
【中文标题】“反应原生弹出”:无法识别的命令“弹出”【英文标题】:"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 你不使用弹出来做到这一点 【参考方案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 true
。 react-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 install
或 yarn
以安装依赖项。
如果项目按照我想象的方式初始化,那么您正在寻找的命令将是以下之一:
react-native run ios
或 react-native run ios --device
react-native run android
或 react-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 eject
和 upgrade --legacy true
不适合我。
最后,我刚刚创建了一个新的空白 RN 项目,其中有一个 ios 文件夹。将文件夹复制到我现有的项目中,并且......似乎可以工作。
【讨论】:
【参考方案6】:yarn add react-native-eject
react-native eject
这两行代码解决了我的弹出错误问题。
【讨论】:
不要在答题部分。以上是关于“反应原生弹出”:无法识别的命令“弹出”的主要内容,如果未能解决你的问题,请参考以下文章
gcc:错误:无法识别的命令行选项“-mfpu=neon-vfpv4”
“ValueError:无法识别的标记样式'hline'”。 Matplotlib plot() 和 scatter() 函数无法识别一堆标记
如何修复:“无法识别的令牌'无法识别':期待('true','false'或'null')”使用Horton schema-registry