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

Expo SDK升级后peer dependency依赖冲突问题求助

解决方案

1. 替换已废弃的expo-app-loading包

expo-app-loading@1.3.0是为旧版Expo SDK设计的官方废弃包,正是它引入的旧子依赖导致了版本冲突。官方推荐用expo-splash-screen替代:

  • 卸载旧包:
    npm uninstall expo-app-loading
    
  • 安装官方替代包:
    npx expo install expo-splash-screen
    
  • 修改代码逻辑:替换原AppLoading组件的用法,改用启动屏控制API。示例:
    import * as SplashScreen from 'expo-splash-screen';
    import { useFonts } from 'expo-font';
    import { useEffect } from 'react';
    
    // 阻止启动屏自动隐藏
    SplashScreen.preventAutoHideAsync();
    
    export default function App() {
      const [fontsLoaded] = useFonts({
        // 你的字体加载配置,比如:'Roboto': require('./assets/fonts/Roboto.ttf')
      });
    
      // 资源加载完成后隐藏启动屏
      useEffect(() => {
        if (fontsLoaded) {
          SplashScreen.hideAsync();
        }
      }, [fontsLoaded]);
    
      if (!fontsLoaded) {
        return null;
      }
    
      return <YourAppRootComponent />;
    }
    

2. 清理依赖并重新安装

确保旧依赖完全移除:

  • 删除node_modules和锁文件:
    rm -rf node_modules package-lock.json
    # Windows系统执行:
    # rmdir /s /q node_modules && del package-lock.json
    
  • 重新安装依赖:
    npx expo install
    

3. (可选)强制锁定冲突依赖版本

如果替换包后仍有残留冲突,在package.json中添加resolutions字段强制指定兼容版本:

"resolutions": {
  "expo-modules-autolinking": "~1.2.0",
  "@expo/config-plugins": "~6.0.0",
  "@expo/prebuild-config": "~6.0.0"
}

添加后执行:

npm install

4. 验证修复结果

运行expo-doctor确认依赖兼容:

npx expo-doctor

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 10:00:34