预构建 Expo 模块用于 Android
编辑
了解预构建 Expo 模块如何在您的机器上将 Android 构建时间减少多达 25%。
在构建 React Native 应用时,较长的构建时间会减慢您的开发工作流程并降低生产力。每次您对代码进行更改时,都可能需要等待构建过程完成,这可能会导致显著的延迟。
从 SDK 53 开始,Expo 引入了用于 Android 的预构建 Expo 模块以解决这一痛点。您的项目现在可以使用这些模块的预编译版本,而无需在每次构建时从头编译 Expo 模块源代码。最终,这将导致更快的构建时间。
优势
- 更快的本地开发:在本地机器上将 Android 构建时间减少多达 25%
- 改善的开发者体验:在开发迭代期间等待时间更短
- 自动优化:与 SDK 53 及更高版本的新项目开箱即用
预构建的 Android Expo 模块如何工作
在项目的 Android 构建过程中,请查找构建输出中包名称旁的 [📦] 表情符号前缀。这表明这些包使用的是预构建版本,而不是从源代码编译而成。
例如,在使用 SDK 53 的默认模板创建项目并运行 npx expo run:android 命令后,您会注意到在预编译的包旁边有 [📦 package-name 前缀:
配置
对于 SDK 53 及更高版本,创建使用可用 Expo 模板 的项目时无需配置步骤。
放弃预构建的 Expo 模块
您可以选择放弃预构建模块。当您自己修改模块源代码时,可能需要这样做。在这种情况下,您可以通过将 buildFromSource 添加到 package.json 文件中来配置 Expo 自动链接配置:
package.json
{ "name": "your-app-name", "expo": { "autolinking": { "android": { "buildFromSource": [ ".*" ] } } } }
有选择地放弃
您也可以通过指定单个包名称而不是通配符 ".*" 来选择放弃特定模块,同时保留其他模块为预构建:
package.json
{ "name": "your-app-name", "expo": { "autolinking": { "android": { "buildFromSource": [ "expo-camera", "expo-web-browser", "expo-linking", ] } } } }
注意事项
- 现有项目在升级到 SDK 53 及更高版本时可以受益于此功能
- 性能改进可能会根据您的硬件配置而有所不同
- 目前 EAS 构建的改进相对温和,但为未来的缓存机制奠定了基础