| 分类 flutter  | 标签 Flutter  包管理 

title

引言

pubspec.yaml 定义项目元数据、依赖、资源、配置。pub.dev 是 Dart/Flutter 的官方包仓库,pub get 从仓库下载依赖并解析版本。依赖版本可使用 ^ 表示兼容范围(如 ^5.4.0 表示 >=5.4.0 <6.0.0),或使用 any、精确版本。依赖冲突时 pub 会尝试解析,若无法解析则报错。dev_dependencies 仅用于开发、测试,不会打包进应用。本文将介绍 pubspec 的配置、依赖解析、版本约束以及最佳实践。

版本约束

^1.2.3 表示 >=1.2.3 <2.0.0,即兼容主版本内的更新。>=1.2.3 <2.0.0 可显式指定范围。any 不推荐,可能导致不可预期的升级。pub.lock 锁定解析结果,提交到版本控制可保证团队和 CI 使用一致版本。升级依赖时运行 pub upgrade 可更新到兼容范围内的最新版。

pubspec.yaml

name 为包名,用于 pub.dev 发布。version 遵循语义化版本。dependencies 和 dev_dependencies 的格式相同,key 为包名,value 为版本约束或 git/path 依赖。flutter 下的 assets、fonts 配置资源。environment 可限制 Dart 和 Flutter SDK 版本。

name: my_app
description: A Flutter application.
version: 1.0.0+1

environment:
  sdk: '>=3.0.0 <4.0.0'

dependencies:
  flutter:
    sdk: flutter
  dio: ^5.4.0
  path_provider: ^2.1.1

dev_dependencies:
  flutter_test:
    sdk: flutter
  flutter_lints: ^3.0.0

总结

合理管理依赖版本可避免冲突,保持项目稳定。优先使用 ^ 约束,定期运行 pub upgrade 更新依赖,关注 pub.dev 上的包评分和流行度。对于私有包,可使用 git 或 path 依赖。


上一篇     下一篇