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 文件的更多信息,请参阅以下内容