Expo Modules API:入门
编辑页面
了解如何开始使用 Expo Modules API。
For the complete documentation index, see llms.txt. Use this file to discover all available pages.
There are two ways to get started with the Expo Modules API: 你可以从头初始化一个新模块,也可以将 Expo Modules API 添加到现有模块中。本指南将带你从头创建一个新模块,而 在现有库中集成 则介绍后者。有关可用选项的完整列表,请参阅 create-expo-module 参考。
使用 Expo Modules API 创建新模块的两种推荐流程:
-
向现有 Expo 应用添加一个新模块,并使用它来测试和开发你的模块。
-
使用生成的示例项目独立创建一个新模块,如果你想在多个项目中复用它或将其发布到 npm。
这两种流程都将在后续章节中介绍。
向现有应用添加一个新模块
1
创建本地 Expo 模块
进入你的项目目录(包含 package.json 文件的目录),然后运行以下命令。这是创建本地 Expo 模块的推荐方式。
- npx create-expo-module@latest --local你可以在 CLI 提示中提供一个有意义的模块名称。对于其余提示,也可以直接接受默认建议。
运行命令后,你会在项目中看到一个名为 modules 的新目录被创建。目录结构应如下所示:
modulesmy-moduleandroidiossrcexpo-module.config.jsonindex.ts然后,如果你的项目还没有生成原生项目(android 和 ios 目录),请运行以下命令;否则跳过此命令:
- npx expo prebuild --cleanNote: 如果你的项目根目录中已经存在一个通过
npx expo prebuild创建的 ios 目录,你必须重新安装 pods:
Terminal-npx pod-install
2
使用本地模块
在你的应用中导入本地模块,例如在 App.js、App.tsx 或 src/app/index.tsx 中:
%%placeholder-start%%...%%placeholder-end%% import MyModule from '@/modules/my-module'; export default function HomeScreen() { return ( <View style={styles.container}> <Text>{MyModule.hello()}</Text> </View> ); }
在终端中启动开发服务器,这样当你在下一步编辑原生模块并构建应用时,改动就会反映到应用中:
- npx expo start恭喜!你已经创建了一个本地 Expo 模块。现在可以开始开发它了。
Tip: 你也可以通过应用这些配置更改来使用绝对导入路径。
3
编辑模块
为了在本地开发和测试你的模块,我们将使用 Android Studio 和 Xcode 分别处理 Android 和 iOS。
Android
- 在 Android Studio 中打开项目里的 android 目录(这是在第 1 步中由
npx expo prebuild生成的)。Gradle 完成原生目录项目同步可能需要一段时间。 - 项目同步完成后,打开 modules/my-module/android/src/main/java/expo/modules/mymodule/MyModule.kt 文件。
- 将
hello函数修改为返回不同的字符串,例如 "Hello world! 🌎🤖",并保存文件。 - 通过点击顶部菜单栏中的 Run 'app' 按钮来构建应用,你会在屏幕上看到这些更改。
每当你对原生代码做出更改时,都需要重复构建步骤以使更改生效。
iOS
- 在终端中运行
xed ios命令,从 Xcode 打开项目中的 ios 目录(这是在第 1 步中由npx expo prebuild生成的)。 - 在 Pods > Development Pods > MyModule 下,打开 MyModule.swift 文件。
- 将
hello函数修改为返回不同的字符串,例如 "Hello world! 🌎🍎",并保存文件。 - 通过点击顶部菜单栏中的 Run 按钮,或按 ⌘ Cmd + R 来构建应用,你会在屏幕上看到这些更改。
每当你对原生代码做出更改时,都需要重复构建步骤以使更改生效。
Tip: 如果你向模块中添加了新的原生文件,或者修改了 expo-module.config.json,请使用npx pod-install重新安装 pods。
Note: 还有其他方式可以让 Expo 模块与你的应用并行开发。例如,你可以使用 monorepo 或发布到 npm,具体请参阅 如何在项目中使用独立的 Expo 模块 指南。
使用示例项目创建一个新模块
1
2
3
编辑模块
Android
- 打开 my-module/android/src/main/java/expo/modules/mymodule/MyModule.kt 文件。
- 将
hello函数修改为返回不同的字符串,例如 "Hello world! 🌎🤖",并保存文件。 - 通过点击顶部菜单栏中的 Run 'app' 按钮来构建应用,你会在屏幕上看到这些更改。
每当你对原生代码做出更改时,都需要重复构建步骤以使更改生效。
iOS
- 在 Pods > Development Pods > MyModule 下,打开 MyModule.swift 文件。
- 将
hello函数修改为返回不同的字符串,例如 "Hello world! 🌎🍎",并保存文件。 - 通过点击顶部菜单栏中的 Run 按钮,或按 ⌘ Cmd + R 来构建应用,你会在屏幕上看到这些更改。
每当你对原生代码做出更改时,都需要重复构建步骤以使更改生效。
Tip: 如果你向模块中添加了新的原生文件,或者修改了 expo-module.config.json,请使用npx pod-install重新安装 pods。
下一步
现在你已经学会了如何初始化模块并对其进行简单修改,可以继续学习教程,或者直接深入查看 API 参考。
关于使用 Expo Modules API 创建一个可持久化设置的原生模块的教程。
使用 Swift 和 Kotlin 创建原生模块的参考文档。