如何解决React Native添加Firebase后出现Cannot use import statement outside a module错误
解决方案
- 先删除
package.json中你新增的"type": "module"配置,Expo + React Native 环境默认使用CommonJS打包逻辑,该配置会和默认规则冲突,反而触发模块解析报错。 - 替换你的
babel.config.js为如下配置:
module.exports = function(api) { api.cache(true); return { presets: ["babel-preset-expo"], env: { test: { plugins: ["@babel/plugin-transform-runtime"], }, }, overrides: [{ test: /node_modules\/@react-native-firebase/, sourceType: "unambiguous" }] }; };
如果运行后提示找不到babel-preset-expo,执行npm install babel-preset-expo --save-dev安装对应依赖即可。你之前使用的@babel/preset-env、@babel/preset-react对Expo环境适配性不如官方维护的babel-preset-expo,替换后可避免很多适配问题。
3. 清除所有打包缓存后重启项目,执行命令npx expo start --clear,确保新配置完全生效,不会被旧缓存覆盖。
4. 若以上操作完成后仍有报错,检查你安装的@react-native-firebase版本是否与当前Expo SDK版本匹配:Expo SDK 48对应v17+版本,SDK 49对应v18+版本,SDK 50对应v19+版本,版本不匹配也会触发模块解析异常。
内容的提问来源于stack exchange,提问作者On the way to success
相关产品推荐
相关产品推荐

