升级Expo至50.0后React-Native报错:expo-router/babel已弃用如何解决?
解决SDK 50中
expo-router/babel已弃用的问题 1. 更新Babel配置文件
找到项目根目录下的babel.config.js(如果是.babelrc同理),把里面的expo-router/babel预设替换成babel-preset-expo。
错误配置示例:
module.exports = function(api) { api.cache(true); return { presets: ['expo-router/babel'], }; };
修改后的正确配置:
module.exports = function(api) { api.cache(true); return { presets: ['babel-preset-expo'], }; };
2. 清除缓存并重启项目
执行以下命令清除Expo缓存,再重新运行iOS项目:
npx expo start --clear npm run ios
3. 校验依赖版本适配性
检查package.json里的依赖版本,确保expo、expo-router和babel-preset-expo适配SDK 50:
expo版本应为~50.0.0系列expo-router至少为3.4.0babel-preset-expo应为~10.0.0系列
如果版本不匹配,执行更新命令:
npm install expo@~50.0.0 expo-router@^3.4.0 babel-preset-expo@~10.0.0
4. 彻底清理依赖(可选)
要是前面的步骤都没解决问题,试试彻底清除依赖后重装:
# 删除node_modules和锁文件 rm -rf node_modules rm package-lock.json # 重新安装依赖 npm install # 清除缓存并启动 npx expo start --clear && npm run ios
内容的提问来源于stack exchange,提问作者Elvin Shahsuvarli
相关产品推荐
相关产品推荐

