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

从react-navigation迁移至expo-router时遇require.context参数错误

解决Lerna Monorepo中Expo Router的process.env.EXPO_ROUTER_APP_ROOT无效问题

针对你在Lerna Monorepo迁移到Expo Router时遇到的require.context参数错误,尝试以下几个针对性方案:

  • 显式指定EXPO_ROUTER_APP_ROOT环境变量
    在项目的启动脚本或环境变量文件中直接声明路由根目录,避免自动解析出错:

    • 修改package.json的start脚本:
      "scripts": {
        "start": "EXPO_ROUTER_APP_ROOT=./src/app expo start"
      }
      
    • 或者在项目根目录创建.env文件,添加:
      EXPO_ROUTER_APP_ROOT=./src/app
      
  • 配置Expo Router的根目录
    在app.json或app.config.js中明确指定路由根路径,覆盖自动检测:

    {
      "expo": {
        "router": {
          "root": "./src/app"
        }
      }
    }
    

    同时确保项目入口文件index.js仅保留expo-router/entry的导入,不要手动编写require.context相关代码:

    import 'expo-router/entry';
    
  • 修复Monorepo的Babel路径解析
    安装babel-plugin-module-resolver并配置Babel,确保路径解析正确:

    1. 安装依赖:
      npm install babel-plugin-module-resolver --save-dev
      
    2. 修改babel.config.js:
      module.exports = function (api) {
        api.cache(true);
        return {
          presets: ['babel-preset-expo'],
          plugins: [
            [
              'module-resolver',
              {
                root: ['./'],
                alias: {
                  '@your-package': './src' // 替换为你的包名
                }
              }
            ]
          ]
        };
      };
      
  • 清理缓存并重新构建
    彻底清理缓存和依赖,避免旧配置干扰:

    # 清理Expo缓存
    npx expo start --clear
    
    # 清理依赖并重新安装
    rm -rf node_modules package-lock.json
    npm install
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 07:47:07