如何运行Expo项目?旧Expo+React Native项目版本兼容问题求助
解决Expo React Native项目版本不匹配及"Unexpected tokens"错误的步骤
锁定依赖版本一致性
- 打开
package.json,核对expo、react、react-native的版本是否严格匹配Expo官方的SDK对应关系(比如SDK 49对应react 18.2.0、react-native 0.72.3) - 执行
npx expo install --fix,这个命令会自动将所有依赖调整为当前Expo SDK兼容的版本 - 删除
package-lock.json或yarn.lock,再重新执行npm install/yarn install,避免旧锁文件残留的版本冲突
- 打开
修复Babel转译配置
- 检查项目根目录的
babel.config.js,确保使用官方预设,配置应为:module.exports = function(api) { api.cache(true); return { presets: ['babel-preset-expo'], }; }; - 如果有自定义Babel插件(比如装饰器、新语法插件),暂时注释掉这些配置,重新启动项目排查是否是插件兼容性问题
- 检查项目根目录的
彻底清理缓存
- 执行
npx expo start --clear,强制清除Metro打包缓存和Expo的本地缓存 - 执行
npm cache clean --force(npm用户)或yarn cache clean(yarn用户),清除Node模块缓存
- 执行
核对Node.js版本
- 用
node -v查看当前Node版本,确保符合对应Expo SDK的要求(比如SDK 49要求Node 16+) - 版本不兼容的话,用nvm切换到官方推荐的稳定版本
- 用
排查第三方依赖兼容性
- 暂时注释掉package.json中可疑的第三方依赖(尤其是很久没更新的库),重新安装依赖后启动项目,定位是否是某个库导致的语法转译失败
- 对保留的第三方依赖,优先更新到最新的兼容版本,确认其支持当前的React Native/Expo版本
内容的提问来源于stack exchange,提问作者Joshep Han
相关产品推荐
相关产品推荐

