Flutter项目pubspec.lock中git分支引用不更新如何解决?
Flutter git依赖分支最新提交无法自动更新的标准处理方案
这是dart pub的默认有意设计:当
pubspec.yaml中声明的依赖约束(包括git依赖的ref字段)没有发生变更时,执行pub get会优先复用pubspec.lock中已经锁定的解析版本(也就是resolved-ref记录的commit id),避免依赖意外更新引入兼容性问题。
标准处理方案如下:
单个指定git依赖更新
直接执行针对单个依赖的upgrade命令即可,不会影响其他已锁定的依赖版本:
执行后会自动拉取对应# 纯dart项目 dart pub upgrade my_repository # Flutter项目 flutter pub upgrade my_repositoryref(本场景为develop分支)的最新提交,自动更新pubspec.lock中的resolved-ref为最新commit id,无需手动修改lock文件。所有git依赖批量拉取对应分支最新版本
如果需要更新所有符合条件的依赖到约束范围内的最新版本,直接执行全量upgrade命令即可:# 纯dart项目 dart pub upgrade # Flutter项目 flutter pub upgrade异常场景处理
如果执行上述命令后仍然拉不到最新提交,大概率是pub本地缓存了旧的仓库副本,可以清除对应依赖的缓存后重试:dart pub cache clean <依赖名> # 或者清空全部pub缓存(不推荐,会导致后续需要重新拉取所有依赖) dart pub cache clean
内容的提问来源于stack exchange,提问作者Jitesh Mohite
相关产品推荐
相关产品推荐

