Flutter pubspec.yaml 使用方式
pubspec.yaml
是 Flutter 项目中最重要的配置文件之一,用于管理应用的基本信息、依赖项、资源以及构建配置等内容。
1. 基本结构和字段
基本信息
yaml
name: my_flutter_app # 应用的名称
description: A new Flutter project # 项目的描述
version: 1.0.0+1 # 应用的版本号和内部版本号
homepage: https://example.com # 项目的主页 (可选)
repository: https://github.com/my_flutter_app # 用于提供项目的源代码仓库地址 (可选)
publish_to: "none" # 是否发布到 Pub (用于私有项目)
环境要求
yaml
environment:
sdk: ">=2.19.0 <3.0.0" # Dart SDK 的版本范围
flutter: ">=3.7.0" # Flutter SDK 的版本范围 (可选)
2. 添加依赖项
普通依赖
用于添加 Dart 和 Flutter 包依赖:
yaml
dependencies:
flutter:
sdk: flutter # Flutter SDK 必须的核心包
http: ^0.15.0 # 添加第三方依赖包及其版本
provider: ^6.0.0 # 依赖其他库 (Pub.dev 上的库)
开发依赖
仅在开发环境中使用的依赖:
yaml
dev_dependencies:
flutter_test:
sdk: flutter # 测试框架
lint: ^2.0.0 # 代码分析工具
依赖本地包
引用本地的 Dart 包:
yaml
dependencies:
my_local_package:
path: ../my_local_package
依赖 Git 仓库
引用托管在 Git 仓库中的包:
yaml
dependencies:
my_git_package:
git:
url: https://github.com/username/repository.git
ref: main # 指定分支
path: packages/package_name # 指定子目录 (可选)
依赖特定的 SDK
引用基于 Dart 或 Flutter SDK 的包:
yaml
dependencies:
flutter:
sdk: flutter
3. 配置资源
静态资源
添加应用使用的图像、字体等资源:
yaml
flutter:
assets:
- assets/images/logo.png # 单个资源文件
- assets/images/ # 整个文件夹
自定义字体
为项目添加自定义字体:
yaml
flutter:
fonts:
- family: Roboto
fonts:
- asset: assets/fonts/Roboto-Regular.ttf
- asset: assets/fonts/Roboto-Bold.ttf
weight: 700
4. 配置插件
添加平台特定的依赖(iOS、Android 等):
yaml
flutter:
plugin:
platforms:
android:
package: com.example.myplugin
pluginClass: MyPlugin
ios:
pluginClass: MyPlugin
5. 设置执行脚本(Flutter 3.7+ 支持)
支持 scripts 字段定义自定义脚本:
yaml
scripts:
build_runner: flutter packages pub run build_runner build
运行命令:
bash
flutter pub run scripts build_runner
6. 配置平台支持
启用或禁用某些平台支持:
yaml
flutter:
module:
androidPackage: com.example.my_flutter_app
iosBundleIdentifier: com.example.myFlutterApp
generate:
platforms:
- android
- ios
- web
7. 配置最低 SDK 要求
yaml
environment:
flutter: ">=3.3.0"
8. 提升构建效率:缓存与可选字段
启用 Dart 分析器规则
yaml
analyzer:
exclude:
- test/mock_data.dart # 排除文件
配置缓存依赖
避免重新下载 Pub 包,覆盖项目中某个依赖的版本。当某些包依赖的库版本冲突时,可以通过 dependency_overrides 来强制使用指定版本。
yaml
dependency_overrides:
http: ^0.15.0
9. 自定义构建版本号
版本号格式为 x.y.z+build_number,例如:
yaml
version: 1.2.3+10
- x.y.z:语义化版本号(主版本号、次版本号和补丁版本号)。
- build_number:内部构建版本号。
10. 自动生成的注释区域
Flutter 自动生成一些注释内容,建议保留以便参考。例如:
yaml
# To add assets to your application, add an assets section, like this:
# assets:
# - assets/images/a_dot_burr.jpeg
# - assets/images/a_dot_ham.jpeg
11. 插件(国际化)
在某些项目中,flutter_intl 插件用于国际化配置:
yaml
flutter_intl:
enabled: true
use_recommended_settings: true