
引言
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 依赖。
上一篇 下一篇