pubspec.yaml 完整结构速览
一个完整的 pubspec.yaml 由以下几个区块构成:
pubspec.yaml
├── 必填
│ ├── name 包名(小写+下划线)
│ ├── description 包描述
│ ├── version 语义化版本 x.y.z+build
│ └── environment SDK 版本约束
├── 常用
│ ├── dependencies 运行时依赖
│ ├── dev_dependencies 开发/测试依赖
│ └── flutter 资源、字体、插件配置
└── 可选
├── publish_to 发布控制(私有 app 加 'none')
├── dependency_overrides 版本冲突强制覆盖
├── platforms 支持平台声明
└── homepage / repository / topics / screenshots / funding
最常见的完整示例
name: my_app
description: "A sample Flutter application."
version: 1.2.3+5
publish_to: 'none'
environment:
sdk: '>=3.0.0 <4.0.0'
dependencies:
flutter:
sdk: flutter
http: ^1.1.0
provider: ^6.1.0
go_router: ^12.0.0
dev_dependencies:
flutter_test:
sdk: flutter
flutter_lints: ^3.0.0
build_runner: ^2.4.0
flutter:
uses-material-design: true
assets:
- assets/images/
- assets/data/
fonts:
- family: MyFont
fonts:
- asset: fonts/MyFont-Regular.ttf
- asset: fonts/MyFont-Bold.ttf
weight: 700
常见问题速查
| 场景 | 解决方案 |
|---|---|
| 两个包版本冲突 | 用 dependency_overrides 强制锁定 |
| 私有 app 防误发布 | 加 publish_to: 'none' |
| 本地调试某个包 | path: ../my_pkg |
| 使用未发布的 GitHub 分支 | git: url: ... ref: branch-name |
| 添加图片资源 | flutter.assets 列出目录或文件 |
| 注册自定义字体 | flutter.fonts 配置 family + asset |