Flutter 和 pubspec 文件
每个 Flutter 项目都包含一个 pubspec.yaml
文件,通常称为pubspec。当您创建一个新的 Flutter 项目时,将生成一个基本的 pubspec。它位于项目树的顶部,并包含 Dart 和 Flutter 工具需要了解的有关项目的元数据。pubspec 使用 YAML 编写,它可供人类阅读,但请注意空白(制表符与空格)很重要。
pubspec 文件指定项目所需的依赖项,例如特定软件包(及其版本)、字体或图像文件。它还指定其他要求,例如对开发者软件包(如测试或模拟软件包)的依赖项,或对 Flutter SDK 版本的特定约束。
Dart 和 Flutter 项目共有的字段在 pubspec 文件 中描述,该文件位于 dart.dev 上。此页面列出了仅对 Flutter 项目有效的Flutter 特定的字段。
当您使用 flutter create
命令(或使用 IDE 中的等效按钮)创建一个新项目时,它会为一个基本的 Flutter 应用创建一个 pubspec。
以下是 Flutter 项目 pubspec 文件的一个示例。仅突出显示 Flutter 字段。
name: <project name> description: A new Flutter project. publish_to: none version: 1.0.0+1 environment: sdk: ^3.3.0 dependencies: flutter: # Required for every Flutter project sdk: flutter # Required for every Flutter project flutter_localizations: # Required to enable localization sdk: flutter # Required to enable localization cupertino_icons: ^1.0.6 # Only required if you use Cupertino (iOS style) icons dev_dependencies: flutter_test: sdk: flutter # Required for a Flutter project that includes tests flutter_lints: ^3.0.1 # Contains a set of recommended lints for Flutter code flutter: uses-material-design: true # Required if you use the Material icon font generate: true # Enables generation of localized strings from arb files assets: # Lists assets, such as image files - images/a_dot_burr.jpeg - images/a_dot_ham.jpeg fonts: # Required if your app uses custom fonts - family: Schyler fonts: - asset: fonts/Schyler-Regular.ttf - asset: fonts/Schyler-Italic.ttf style: italic - family: Trajan Pro fonts: - asset: fonts/TrajanPro.ttf - asset: fonts/TrajanPro_Bold.ttf weight: 700
资产
常见资产类型包括静态数据(例如,JSON 文件)、配置文件、图标和图像(JPEG、WebP、GIF、动画 WebP/GIF、PNG、BMP 和 WBMP)。
除了列出包含在应用包中的图像外,图像资产还可以引用一个或多个特定于分辨率的“变体”。有关更多信息,请参阅 分辨率感知部分的 资产和图像 页面。有关从包依赖项添加资产的信息,请参阅同一页面中的 包依赖项中的资产图像 部分。
字体
如上例所示,fonts 部分中的每个条目都应具有一个 family
键,其中包含字体系列名称,以及一个 fonts
键,其中包含一个指定字体资产和其他描述符的列表。
有关使用字体的示例,请参阅 使用自定义字体 和 从包中导出字体 食谱中的 Flutter 食谱。
更多信息
有关包、插件和 pubspec 文件的更多信息,请参阅以下内容