解决Flutter项目pub get卡在Resolving dependencies的镜像配置指南

张开发
2026/4/21 10:41:48 15 分钟阅读

分享文章

解决Flutter项目pub get卡在Resolving dependencies的镜像配置指南
1. 为什么pub get会卡在Resolving dependencies当你第一次运行flutter pub get或者添加新依赖后执行这个命令时最让人抓狂的就是看着命令行卡在Resolving dependencies...一动不动。这种情况在国内尤其常见我刚开始用Flutter时也经常遇到有时候一等就是十几分钟甚至直接超时失败。根本原因在于Flutter默认的包管理仓库pub.dev服务器在国外而国内网络访问这些服务器时经常会遇到各种问题。解析依赖阶段需要从服务器获取所有依赖包的元数据信息包括版本号、依赖关系等这个过程对网络稳定性要求很高。一旦网络出现波动或者延迟较高就会卡在这个环节。2. 国内镜像源的选择与对比2.1 官方中国镜像Flutter官方为中国开发者提供了专门的镜像服务这是最稳定可靠的选择。它由Flutter团队直接维护更新及时与主仓库保持同步。配置方法很简单export PUB_HOSTED_URLhttps://pub.flutter-io.cn export FLUTTER_STORAGE_BASE_URLhttps://storage.flutter-io.cn我在多个项目中使用这个镜像下载速度通常在1-2MB/s比直接连接国外服务器快很多。不过高峰期偶尔也会出现速度下降的情况。2.2 上海交通大学镜像上海交通大学的镜像源是另一个不错的选择更新频率也很高export FLUTTER_STORAGE_BASE_URLhttps://mirrors.sjtug.sjtu.edu.cn/ export PUB_HOSTED_URLhttps://dart-pub.mirrors.sjtug.sjtu.edu.cn/这个镜像的优点是服务器位于教育网内对于校园网用户特别友好。实测在教育网环境下速度可以跑满带宽。2.3 清华大学TUNA镜像清华大学TUNA镜像在国内开发者中也很受欢迎export PUB_HOSTED_URLhttps://mirrors.tuna.tsinghua.edu.cn/dart-pub/如果想临时使用清华镜像可以直接在命令前加上环境变量PUB_HOSTED_URLhttps://mirrors.tuna.tsinghua.edu.cn/dart-pub/ flutter pub get清华镜像的更新周期大约是每4小时同步一次对于大多数项目来说完全够用。3. 不同操作系统的配置方法3.1 Windows系统配置Windows用户可以通过修改环境变量来配置镜像源右键此电脑 → 属性 → 高级系统设置 → 环境变量在用户变量或系统变量中新建两个变量PUB_HOSTED_URL https://pub.flutter-io.cnFLUTTER_STORAGE_BASE_URL https://storage.flutter-io.cn保存后重启所有命令行窗口我建议在Android Studio或VSCode中也重启一下确保所有终端都能获取到新的环境变量。3.2 macOS/Linux系统配置对于macOS和Linux用户最方便的做法是修改shell配置文件echo export PUB_HOSTED_URLhttps://pub.flutter-io.cn ~/.zshrc echo export FLUTTER_STORAGE_BASE_URLhttps://storage.flutter-io.cn ~/.zshrc source ~/.zshrc如果你使用的是bash把.zshrc换成.bashrc或.bash_profile即可。这个配置会永久生效以后打开任何终端窗口都会自动使用镜像源。4. 验证配置是否生效配置完镜像源后如何确认真的生效了呢我通常用这几个方法验证执行flutter pub get时观察下载速度正常应该明显变快查看日志输出如果看到类似Downloading packages from https://pub.flutter-io.cn...就说明在使用镜像可以临时删除环境变量对比速度差异有时候即使配置了镜像还是会卡住这时候可以尝试flutter pub cache repair flutter clean flutter pub get这个组合命令会清理缓存并重新获取依赖解决了很多奇怪的问题。5. 常见问题排查5.1 配置了镜像但还是慢这种情况我遇到过几次通常有几个原因环境变量没有正确加载 - 试试新开一个终端窗口项目中的某些依赖指定了绝对路径 - 检查pubspec.yaml镜像服务器临时故障 - 换一个镜像源试试5.2 镜像源不同步导致的问题镜像源和主仓库之间存在同步延迟偶尔会出现版本不一致的情况。如果你遇到依赖解析错误可以检查镜像源上是否有你需要的版本临时切换回官方源获取最新包等待几小时让镜像同步完成5.3 公司内网的特殊配置有些公司的网络环境比较特殊可能需要额外配置代理。这种情况下建议联系IT部门获取正确的代理设置然后在Flutter命令前加上代理参数export http_proxyhttp://company-proxy:port export https_proxyhttp://company-proxy:port flutter pub get6. 其他优化技巧除了配置镜像源还有一些小技巧可以提升依赖解析速度精简pubspec.yaml中的依赖只保留真正需要的包指定依赖版本范围而不是使用any减少解析复杂度定期运行flutter pub upgrade保持依赖更新使用flutter pub get --offline在无网络情况下使用缓存对于大型项目依赖解析可能会消耗较多内存。如果遇到内存不足的问题可以尝试增加Dart VM的内存限制export DART_VM_OPTIONS--old_gen_heap_size40967. 长期维护建议配置镜像源不是一劳永逸的事情我建议定期检查镜像源是否仍然可用关注Flutter社区关于镜像源的更新在团队项目中统一镜像源配置把镜像配置写入项目文档方便新成员快速上手我在团队项目中通常会创建一个setup.sh脚本包含所有必要的环境配置新成员只需要运行这个脚本就能完成开发环境搭建。

更多文章