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

Expo SDK 48升级至SDK50启动报错,.plugins[0]类型异常求助

问题

Expo SDK 48已废弃,我按照官方升级指南将其升级至SDK 50,执行npx expo-doctor@latest未出现报错,但运行npx expo start --clear时触发错误:node_modules\expo\AppEntry.js: .plugins[0] must be a string, object, function。已尝试删除node_modules和package-lock.json,问题仍未解决,请问若因依赖导致,该如何排查问题?

附项目package.json配置:

{
    "name": "GoldNow",
    "version": "2.0.2",
    "dependencies": {
        "@expo/vector-icons": "^14.0.0",
        "@kichiyaki/react-native-barcode-generator": "^0.6.7",
        "@react-native-async-storage/async-storage": "1.21.0",
        "@react-native-community/cli": "^10.2.0",
        "@react-native-community/datetimepicker": "7.6.1",
        "@react-native-community/masked-view": "^0.1.11",
        "@react-native-picker/picker": "2.6.1",
        "@react-navigation/bottom-tabs": "^6.5.7",
        "@react-navigation/native": "^6.1.6",
        "@react-navigation/native-stack": "^6.9.12",
        "@react-navigation/stack": "^6.3.16",
        "axios": "^1.4.0",
        "deprecated-react-native-prop-types": "^4.0.0",
        "expo": "~50.0.5",
        "expo-asset": "~9.0.2",
        "expo-dev-client": "~3.3.8",
        "expo-document-picker": "~11.10.1",
        "expo-file-system": "~16.0.5",
        "expo-font": "~11.10.2",
        "expo-image-picker": "~14.7.1",
        "expo-linear-gradient": "~12.7.1",
        "expo-splash-screen": "~0.26.4",
        "expo-status-bar": "~1.11.1",
        "install": "^0.13.0",
        "moment": "^2.29.4",
        "patch-package": "^6.5.1",
        "prop-types": "^15.8.1",
        "react": "18.2.0",
        "react-native": "0.73.2",
        "react-native-chart-kit": "^6.12.0",
        "react-native-cli": "^2.0.1",
        "react-native-countdown": "^0.0.3",
        "react-native-countdown-component": "^2.7.1",
        "react-native-countdown-timer-hooks": "^1.0.3",
        "react-native-dropdown-picker": "^5.4.6",
        "react-native-gesture-handler": "~2.14.0",
        "react-native-keyboard-aware-scroll-view": "^0.9.5",
        "react-native-normalize": "^1.0.1",
        "react-native-otp-inputs": "^7.4.0",
        "react-native-reanimated": "~3.6.2",
        "react-native-safe-area-context": "4.8.2",
        "react-native-screens": "~3.29.0",
        "react-native-searchable-dropdown": "^1.1.3",
        "react-native-smooth-pincode-input": "^1.0.9",
        "react-native-svg": "14.1.0",
        "react-native-swiper": "^1.6.0",
        "react-native-webview": "13.6.4",
        "react-native-wizard": "^2.1.1",
        "react-redux": "^8.0.5",
        "redux": "^4.2.1",
        "redux-persist": "^6.0.0",
        "redux-thunk": "^2.4.2",
        "typescript": "^5.1.3"
    },
    "scripts": {
        "postinstall": "patch-package"
    }
}

排查与解决步骤

  • 检查Expo配置文件的插件项:错误提示明确指向.plugins[0]格式异常,优先打开项目根目录的app.json或app.config.js,查看expo.plugins数组。确保每一项都是字符串(插件名称)、配置对象(如["插件名", { 配置项 }])或函数,移除空值、数组等非法类型的项。
  • 定位冲突依赖:部分第三方依赖会自动向Expo配置注入插件,可能导致格式错误。可以:
    1. 临时移除package.json中的非Expo官方依赖(如@kichiyaki/react-native-barcode-generator、react-native-chart-kit等),执行npm install和npx expo start --clear测试。
    2. 若错误消失,再逐个重新添加依赖,每次添加后启动项目,找到引发问题的具体包。
  • 检查patch-package补丁:项目使用了patch-package,补丁可能修改了Expo相关文件的结构。查看patches目录下的所有补丁,尤其是涉及expo包的内容,暂时移除可疑补丁后重新安装依赖测试。
  • 导出并验证Expo配置:执行npx expo config命令导出当前配置,查看输出中的plugins数组,确认每一项格式合规。若发现异常项,追踪其来源(手动配置或依赖注入)并修正。
  • 彻底清理缓存:执行npx expo r -c清除Expo的Metro缓存和原生项目缓存,再尝试启动项目。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 23:48:11