“react-native eject”:无法识别的命令“eject”

yzuktlbb  于 2023-10-23  发布在  React
关注(0)|答案(7)|浏览(164)

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

react-native eject

但我得到了错误:

error Unrecognized command "eject".

我做错了什么吗?我应该如何重新创建android和ios文件夹?
react-native-cli:2.0.1

zujrkrfu

zujrkrfu1#

npm i react-native-eject
npm i @react-native-community/cli
react-native eject

将生成Android和iOS文件夹

7rtdyuoh

7rtdyuoh2#

它在0.59.9中工作。今天早上我升级到0.60后,这也让我感到困惑。显然,你现在必须运行react-native upgrade --legacy truereact-native eject更容易IMHO。

xwmevbvl

xwmevbvl3#

yarn add react-native-eject
react-native eject

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

nimxete2

nimxete24#

尼基塔是100%正确的。如果项目在expo中初始化,运行react native eject将从expo依赖项(和expo环境)中“弹出”项目,并在expo环境之外创建一个独立的react本机项目。这通常会调整pakage.json文件中的依赖项。
命令作为expo的一部分存在。
要从头开始初始化一个项目,react-native init会创建android和ios文件夹。还要确保您是否已克隆目录以运行npm installyarn来安装依赖项。
如果该项目被初始化的方式,我想你是你正在寻找的commmand将是以下之一:react-native run iosreact-native run ios --devicereact-native run androidreact-native run android --device

biswetbf

biswetbf5#

对于由react-native init启动的RN项目,没有这样的命令,默认情况下RN使用的是metro插件而不是Web版的React,在Web版中,你可以配置Parcel/Webpack/Rollup或运行create-react-app,实际上你可以弹出。这个问题适用于expo,如果您需要一些未包含在expo中的本机模块,则可以实际弹出。
尝试使用expo

klh5stk1

klh5stk16#

react-native ejectupgrade --legacy true不适合我。
最后,我只是创建了一个新的空白RN项目,这有一个ios文件夹。把文件夹复制到我现有的项目中.似乎工作。

6xfqseft

6xfqseft7#

4年后,这仍然是一个问题。
对我来说,我保留了一个原始生成的文件夹的副本,然后运行

cd android
./gradew clean
cd ..
npx react-native start

非常疯狂的是,reactNative没有一个简单/稳定的方法来重新生成android文件夹,这是十多年前混合编译器实现的。

相关问题