You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Expo iOS构建失败:Metro无法解析./firebase模块

解决Metro无法解析./firebase模块的问题

1. 核对文件路径与导入规则

  • 确认firebase.js和App.js在同一根目录下,若不在,需调整导入路径为对应相对路径(比如../firebase)。
  • 检查App.js中的导入语句:确保是import { db, storage } from './firebase',注意文件名大小写——本地开发环境可能不区分,但构建服务器会严格校验。

2. 彻底清理缓存

执行以下命令清除可能导致路径识别异常的缓存:

# 重置Metro缓存
npx react-native start --reset-cache
# 清理本地依赖缓存并重装
rm -rf node_modules
rm package-lock.json
npm install

如果使用yarn,替换为yarn cache clean && yarn install。

3. 调整Metro配置(可选补充)

你的metro.config.js已添加cjs扩展名支持,可额外补充确保js扩展名被正确识别:

const { getDefaultConfig } = require('@expo/metro-config')

const defaultConfig = getDefaultConfig(__dirname)
defaultConfig.resolver.assetExts.push('cjs')
// 显式添加js扩展名(默认已包含,做双重保障)
defaultConfig.resolver.sourceExts.push('js')

module.exports = defaultConfig

4. EAS构建环境专属检查

由于你使用eas-cli构建,需确认:

  • firebase.js未被.gitignore忽略,确保构建服务器能拉取到该文件。
  • 执行eas build --clear-cache清除远程构建缓存,避免旧缓存导致的文件缺失。

5. 验证本地初始化文件有效性

先在本地启动开发服务器测试,确认文件本身无语法错误:

expo start --clear

若本地正常运行但构建失败,基本可定位为构建环境的缓存或文件同步问题。


内容的提问来源于stack exchange,提问作者Romanas

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 21:13:22