68

我是本机反应的新手,我在理解应用程序的文件夹结构时遇到了一些麻烦,应该在创建时出现在项目文件夹中。基本上,当使用 npm 创建项目时,我会得到一些启动文件(App.js 等)和一个 node_modules 文件夹。我已经使用 expo 启动并运行它,它也创建了 .expo 文件夹。

但是,当我查看 react 的官方文档或查看 git 上的插件/插件时,他们多次谈论项目根目录中的 android 和 iOS 文件夹。但他们无处可寻。然后我得到一些提示,我可以安装和运行 react-native-upgrade-git,据称它会生成这些丢失的文件夹。但这也没有用。

那么我错过了什么?这些文件夹在哪里?

编辑:这是来自 Youtube 教程的屏幕转储,显示了我正在寻找的项目结构:

在此处输入图像描述

4

11 回答 11

49

在 React Native 之上的 Expo 的要点之一是你不要去使用 android 或 ios 代码。Expo 为您处理这些文件夹,您无需与它们交互。你有需要这些文件夹的理由吗?如果是这样,您将不得不弹出。这是执行此操作的文档:使用 ExpoKit 弹出

于 2017-05-30T19:54:25.970 回答
34

您可以通过运行以下命令访问该项目结构:

npm run eject

但是,它将应用程序从 Expo 框架中删除,这为 Android/iOS 代码添加了许多不错的好处和抽象。

于 2017-07-19T00:40:22.843 回答
17

我认为如果你想用 ReactNative 开发应用程序,你可以开始遵循这个:Getting Started use React Native

如果您ReactNative只在终端上编写项目,例如:

react-native init YourProjectName
cd YourProjectName
react-native run-ios //for iOS

我希望我的回答能帮助您使用ReactNative创建项目。谢谢..

于 2017-07-19T04:06:18.690 回答
11

试试这个来生成 Android 和 iOS 文件夹

react-native eject

react-native link
于 2018-07-31T12:28:50.747 回答
6

我想我有点晚了,但是如果您不想阅读任何文档,请按照以下步骤操作。

使用 expo 创建 react native 项目时,android 和 ios 文件夹不存在。所以你必须从你的项目中分离出 expo 来创建 android 和 ios 文件夹。

首先在 app.json 文件中添加所需的包名

    ios: {
       bundleIdentifier: "com.yourcompany.yourappname",
    },
    android: {
       package: "com.yourcompany.yourappname",
    }

然后在终端中运行以下命令

exp detach

命令成功执行后你会发现android和ios文件夹

于 2018-01-31T11:22:03.833 回答
4

在遵循他的指示后添加到 Funk Soul Ninja 的答案(谢谢!:)),对于那些从世博会项目开始的人:

expo run:ios

为我做了伎俩。

该命令创建 ios 文件夹,其中包含可以在 Xcode 中编辑和构建的项目。

我没有做这一步,但我相信expo run:android对 Android 做了类似的事情;但我建议查看有关添加自定义本机代码的 Expo 文档

于 2021-08-20T17:38:59.833 回答
3

删除文件夹androidios

npm i react-native-eject
react-native eject
于 2020-08-08T19:23:30.797 回答
1

我不得不跑expo eject。为什么我没有这些文件夹背后的故事是因为一些损坏的依赖关系而不得不降级我的 react-native 应用程序,然后我得到了构建失败。所以我删除了 ios 和 android 文件夹,然后运行expo eject并修复了所有构建问题。请注意,我通过包 json 中的脚本使用 expo 命令行,以便版本与我的项目使用的版本相匹配。

于 2020-10-12T03:01:25.990 回答
0

在开始安装 react native 后,运行 expo init YourProject,选择minimum (Typescript)。之后转到 YourProject 目录,不要运行 npm start。但运行npm run android。希望这有帮助

于 2019-08-08T08:44:22.897 回答
0

这对我有用:转到设置并从“文件:排除”中删除两个条目“android”和“ios”。不要忘记这两种环境 - 用户和工作区。

删除工作区上的条目: 删除条目

...对于用户相同:

...从用户中删除

于 2020-03-13T13:39:15.870 回答
-4

我知道的最简单的方法

1) 从您当前的 app.json 中获取您的应用名称,假设名称为“mynativeapp”

2)在当前项目文件夹之外的某个地方创建一个新文件夹

3)从它开始:

反应原生初始化 mynativeapp

4) 上面的命令将使 android 和 ios 文件夹在名称上与您的项目内部兼容

5) 将 android/ios 文件夹复制到您的项目文件夹中

现在您可以尝试启动您的原生项目。我检查了Android:

react-native run-android

请享用!

PS“反应”:“16.9.0”,“反应原生”:“0.61.4”

于 2019-11-07T13:30:48.107 回答