使用expo init创建RN项目得到tar.gz依赖能否替换为指定版本
问题解答
配置含义说明
你在package.json中看到的tar包地址形式的依赖,是Expo框架的常规配置:
Expo会对官方React Native源码做定制化改造,包含Expo自有能力适配补丁、多端兼容性修复、稳定性优化等内容,每一个Expo SDK版本都会对应一个定制版的React Native包。这行配置"react-native": "https://github.com/expo/react-native/archive/sdk-42.0.0.tar.gz"表示当前项目依赖适配Expo SDK 42的定制版React Native,包源直接从GitHub代码归档地址拉取。
其中Expo SDK 42对应的底层React Native官方版本为0.63,这也是你没有拿到预期0.66版本的原因。
是否可以替换为官方版本号
不建议直接替换成普通版本号:
- 官方原版React Native没有适配Expo的原生能力封装,直接替换后会出现Expo相关API无法调用、项目编译报错、运行闪退等兼容性问题
- 如果你需要使用0.66版本的React Native,对应的适配Expo SDK版本为44,你可以在初始化项目时指定Expo SDK 44版本,或是按照Expo升级流程将现有项目SDK升级到44即可获得对应版本的React Native能力。
内容的提问来源于stack exchange,提问作者jbburf
相关产品推荐
相关产品推荐

