Flutter命令行构建自动升级依赖,如何阻止该行为?
解决Flutter命令行自动升级依赖的问题
1. 把依赖版本锁死成精确值
直接修改pubspec.yaml里的依赖声明:
- 把带
^的宽松版本(比如^2.5.0)改成精确版本号2.5.0,这样flutter pub get只会拉取你指定的这个版本,不会自动往上升级。 - 如果是间接依赖(不是你自己在pubspec里添加的)被升级,就用
dependency_overrides强制锁定版本,示例:
dependency_overrides: # 替换成实际的间接依赖名和目标版本 shared_preferences: 2.2.2
不管主依赖的版本约束如何,都会强制使用你指定的这个版本。
2. 靠pubspec.lock锁定所有依赖
第一次执行flutter pub get后生成的pubspec.lock文件,会记录当前所有依赖(包括间接依赖)的精确版本。只要这个文件存在,后续执行flutter pub get时会直接读取lock里的版本,不会自动升级。
- 不要删除或随意修改这个文件,把它加入Git等版本控制工具,确保团队协作时所有人使用同一套依赖版本。
3. 给命令加参数临时阻止升级
如果只是某次执行命令不想触发依赖升级,直接添加--no-upgrade参数即可:
flutter pub get --no-upgrade flutter build release --no-upgrade
这个参数会强制使用pubspec.lock里的版本,不会去检查和更新任何依赖。
4. 确认Android Studio的同步设置
再检查下AS的配置:File > Settings > Languages & Frameworks > Flutter > Pub,查看是否勾选Use pub get for dependencies sync。如果勾选了,AS的依赖同步逻辑会和命令行一致;若想让AS也保持lock版本,确保同步操作后pubspec.lock没有被改动即可。
内容的提问来源于stack exchange,提问作者FrizzyLeo
相关产品推荐
相关产品推荐

