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

Expo SDK 49项目构建遇wrap-ansi依赖错误及Play Store适配求助

解决方案:Expo SDK49迁移后Play Store API级别错误与wrap-ansi ESM兼容性问题

一、Play Store「必须针对Android 13(API级别33)或更高版本」问题解决步骤

  1. 确认EAS Build配置(若使用EAS)
    如果通过EAS构建,需确保eas.json中android配置明确指定API级别,避免覆盖app.json的设置:

    {
      "build": {
        "production": {
          "android": {
            "buildToolsVersion": "33.0.0",
            "compileSdkVersion": 33,
            "targetSdkVersion": 33,
            "minSdkVersion": 33
          }
        }
      }
    }
    
  2. 清理本地构建缓存
    执行以下命令彻底清理预构建缓存并重新生成Android项目文件:

    npx expo prebuild --clean
    

    之后重新构建发布包:

    npx expo run:android --variant release
    
  3. 验证Android构建配置
    打开android/app/build.gradle文件,确认以下字段值均为33:

    compileSdkVersion = 33
    targetSdkVersion = 33
    minSdkVersion = 33
    

    若存在第三方插件或依赖修改这些值,需排查并调整对应插件的配置。

二、wrap-ansi ESM模块兼容错误解决步骤

问题根源

你在package.json的resolutions中强制指定了wrap-ansi@8.1.0,但该版本为纯ES模块(ESM),而@expo/cli的CommonJS代码无法通过require()导入ESM模块,导致报错。

修复方案

  1. 修改依赖解析规则
    将package.json中的resolutions字段修改为使用兼容CommonJS的wrap-ansi-cjs:

    "resolutions": {
      "@expo/config-plugins": "~7.2.2",
      "@expo/prebuild-config": "~6.2.4",
      "wrap-ansi": "npm:wrap-ansi-cjs@^7.0.0"
    }
    
  2. 重新安装依赖
    删除本地依赖和锁文件后重新安装:

    rm -rf node_modules yarn.lock
    yarn install
    
  3. 验证修复
    运行npx expo-doctor确认依赖无问题,之后重新尝试构建:

    npx expo start
    # 或执行构建命令
    npx expo run:android --variant release
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 21:05:59