Flutter pubspec.yaml指定包版本后仍下载最新版本问题
解决Flutter指定包版本仍拉取最新版的问题
精准锁定版本号:在
pubspec.yaml中指定包版本时,不要加^前缀。比如要固定使用1.2.3版本,直接写:package_name: 1.2.3带
^的版本号(如^1.2.3)会允许Pub下载兼容的更高小版本,这是导致拉取最新版的常见原因。排查依赖传递冲突:执行
flutter pub deps查看完整依赖树,确认是否有其他依赖包强制依赖了该包的最新版本。如果存在这种情况,在pubspec.yaml的dependency_overrides节点强制指定版本:dependency_overrides: package_name: 1.2.3删除锁文件重新生成:删除项目根目录下的
pubspec.lock文件,再执行flutter pub get。这个文件会缓存之前的依赖版本,删除后Pub会严格按照pubspec.yaml的配置重新拉取依赖。彻底清理本地缓存:除了执行
flutter pub cache clean,手动删除系统级Pub缓存目录:- Windows:
%APPDATA%\Pub\Cache - macOS/Linux:
~/.pub-cache
清理完成后再执行flutter pub get。
- Windows:
检查镜像源缓存:如果使用了第三方镜像源,可能存在缓存未同步的问题。临时切换到官方源执行拉取:
flutter pub get --source pub.dartlang.org
内容的提问来源于stack exchange,提问作者nerdy kid
相关产品推荐
相关产品推荐

