使用浏览器版Expo Go开发React Native App引入axios报错求助
浏览器版Expo Go引入axios时模块解析错误的成因及解决办法
用户报错信息:
components/Signup.js (0:1)
Unable to resolve module 'module://@babel/runtime/helpers/interopRequireDefault.js'(Device)
Evaluating module://@babel/runtime/helpers/interopRequireDefault.js
Evaluating module://axios.js
Evaluating module://components/Signup.js.js
Evaluating module://App.js.js
Loading module://App.js
可能的成因
- 依赖版本不兼容:axios版本和当前Expo项目的babel runtime版本不匹配,导致axios内部依赖的babel辅助模块无法被识别。
- 缓存残留问题:浏览器版Expo Go缓存了旧的依赖解析记录,没有同步新安装的axios相关依赖信息。
- babel配置缺失:项目的babel配置未正确引入
@babel/plugin-transform-runtime插件,导致模块解析规则不完整。 - 依赖安装不完整:安装axios时,关联的
@babel/runtime依赖未自动安装或安装失败。
解决步骤
重装依赖并清理本地缓存
- 删除项目根目录的
node_modules文件夹和package-lock.json(或yarn.lock)文件 - 执行
npm install(或yarn install)重新安装所有依赖 - 关闭并重启浏览器版Expo Go,刷新项目预览
- 删除项目根目录的
安装兼容的axios版本
- 卸载当前axios:
npm uninstall axios(或yarn remove axios) - 安装兼容性较好的版本:
npm install axios@0.27.2
- 卸载当前axios:
修复babel配置
- 确保项目根目录的
babel.config.js包含@babel/plugin-transform-runtime插件,示例配置:module.exports = function(api) { api.cache(true); return { presets: ['babel-preset-expo'], plugins: ['@babel/plugin-transform-runtime'] }; }; - 若未安装该插件,执行:
npm install --save-dev @babel/plugin-transform-runtime
- 确保项目根目录的
清除Expo全局缓存
- 在项目终端执行
npx expo start --clear,强制清理Expo缓存后重启项目
- 在项目终端执行
内容的提问来源于stack exchange,提问作者Saad
相关产品推荐
相关产品推荐

