使用React Native CLI构建的项目能否通过Expo CLI运行?
React Native CLI项目迁移至Expo运行操作指南
可行性说明
完全可行,根据项目是否包含自定义原生代码分为两种适配方案:
- 无自定义原生代码、所有第三方依赖均兼容Expo Go:可直接适配后用Expo Go运行
- 包含自定义原生代码/依赖不兼容Expo Go的原生库:可使用Expo开发客户端(Dev Client)构建自定义运行环境后运行
正确迁移流程
- 不要直接复用原项目的
package.json,先通过npx create-expo-app新建空白Expo项目,选择和你原项目RN版本匹配的Expo SDK版本,避免版本不兼容报错 - 迁移原项目的业务代码文件(组件、页面、工具类、静态资源等)至新Expo项目的对应目录
- 逐个核对原项目
package.json里的第三方依赖:- 基础依赖(react、react-native)不要改动,保持Expo项目默认的版本即可
- 其他第三方依赖先通过
npx expo install [依赖名]安装,这个命令会自动安装匹配当前Expo SDK版本的依赖版本,避免版本冲突 - 如果遇到依赖提示不兼容Expo Go,可通过配置Expo Config Plugin适配,或者改用Expo Dev Client方案
- 如果确认需要使用自定义原生代码,执行
npx expo prebuild生成原生工程目录,再通过npx expo run:android/npx expo run:ios构建自定义开发客户端即可运行
- 迁移原项目的配置项:比如应用名称、包名、权限配置等,对应修改Expo项目的
app.json配置 - 执行
npx expo start启动项目,根据控制台提示的报错逐一调整剩余适配问题
此前操作报错的核心原因
直接全量迁移原RN CLI项目的
package.json会导致react、react-native等核心依赖版本和Expo SDK要求的版本不匹配,同时很多原生依赖默认是适配RN CLI的裸项目,没有做Expo兼容处理,自然会出现大量运行时报错。
内容的提问来源于stack exchange,提问作者Immanuel
相关产品推荐
相关产品推荐

