Flutter中.pub-cache文件夹是什么?为何影响项目却不在项目目录?
Flutter升级后.pub-cache依赖问题解答
1. .pub-cache 是什么?
- 这是Flutter/Dart的本地依赖缓存目录,你通过
pub get或flutter pub get拉取的所有第三方包,都会下载存放在这里,目的是避免重复下载相同依赖,提升项目构建效率。 - 你看到的路径里
git/flutter_paystack-xxx,说明这个依赖包是直接从Git仓库拉取的,而非Pub官方仓库的正式发布版本。
2. 为什么缓存目录的文件会影响项目?
- 执行
flutter pub get时,Flutter会把.pub-cache里的依赖包链接或复制到你的项目环境中,项目编译运行时,实际调用的就是缓存里的代码文件。 - 你升级到Flutter 3.10.5后,该依赖包用了Flutter已废弃的API,导致编译报错,所以修改缓存文件能临时跑通项目,但存在几个问题:
- 缓存文件不在你的项目目录下,Git不会追踪这些修改,自然推不到你的GitHub仓库。
- 一旦执行
flutter pub clean、换设备拉取项目,缓存会被重新生成,你的修改直接丢失。 - 编辑器弹出警告,是因为这些文件属于外部依赖,不属于当前项目的源码范围。
3. 靠谱的解决办法
- 找作者更新包:去这个Flutter Paystack包的Git仓库提Issue,说明Flutter 3.10.5下的废弃API问题,请求作者适配新版本。
- 自己fork仓库修改:如果作者没及时更新,你可以fork这个Git仓库,自己修改废弃代码,然后把
pubspec.yaml里的依赖地址换成你fork后的仓库地址。 - 临时降级Flutter:如果不想折腾依赖,可以降级Flutter到之前能正常运行的版本,用命令
flutter downgrade <具体版本号>就能实现。
内容的提问来源于stack exchange,提问作者Lex
相关产品推荐
相关产品推荐

