从react-native-cli转Expo:三类工具/命令的作用与差异咨询
Expo核心工具解惑(针对React Native CLI用户)
1. Expo Dev Client vs Expo Go:为何优先选前者?
- Expo Go的硬局限:只能使用Expo官方预打包的原生模块,无法集成自定义原生代码、未被Expo收录的第三方原生SDK(比如特定蓝牙、企业级支付工具),也不能修改App图标、启动页这类原生配置。
- Expo Dev Client的核心价值:
- 保留Expo的快速重载、OTA更新等便捷特性的同时,完全支持自定义原生代码或任意第三方原生依赖
- 允许自定义App的原生配置(图标、启动页、权限声明等),和React Native CLI的原生定制能力对齐
- 支持开发环境下的调试工具集成,原生开发流程无缝衔接,适合有CLI背景的开发者
2. npx expo prebuild 与另外两个工具的功能边界
先明确:npx expo prebuild的作用是根据你的app.json/app.config.js配置,自动生成iOS/Android的原生项目文件(把Expo配置转成React Native CLI风格的原生工程),仅生成文件,不编译运行。
和expo-dev-client的关系
两者功能不重叠:expo-dev-client是一个可定制的开发环境客户端App,需要基于prebuild生成的原生工程来构建,用来替代Expo Go,提供符合你项目定制需求的开发调试环境。
和npx expo run:ios/android的关系
run命令是prebuild的延伸,会自动先执行prebuild(如果原生工程不存在或配置有变更),然后直接编译并在模拟器/真机上运行App(不管是Dev Client还是开发版生产包)。简单说,prebuild是“生成原生工程”,run是“生成+编译+运行”的一站式命令,相当于合并了prebuild和react-native run-ios/android的步骤。
内容的提问来源于stack exchange,提问作者Mishen Thakshana
相关产品推荐
相关产品推荐

