Pubspec 文件的 Flutter 部分

每个 Flutter 项目都包含一个 pubspec.yaml 文件,通常被称为 pubspec。当你创建一个新的 Flutter 项目时,会生成一个基本的 pubspec。它位于项目的根目录,包含 Dart 和 Flutter 工具需要了解的项目元数据。 pubspec 是用 YAML 写的,它具有可读性,但要注意 缩进符号(制表符和空格)很重要

pubspec 文件指定了项目所需的依赖,如特定的 package(及其版本)、字体或图像文件。它还指定了其他配置,如对开发者 package 的依赖(如测试或模拟 package),或对 Flutter SDK 版本的特殊限制。

Dart 和 Flutter 项目共有的字段在 dart.devpubspec 文件 中描述。本页列出了只对 Flutter 项目有效的 Flutter 特定的 字段。

当你用 flutter create 命令创建一个新项目时(或通过使用你的 IDE 中的相应按钮),它会为每一个 Flutter 应用程序创建 pubspec。

下面是一个 Flutter 项目的 pubspec 文件的示例。只有 Flutter 可用的字段会高亮显示。

yaml
name: <project name>
description: A new Flutter project.

publish_to: none

version: 1.0.0+1

environment:
  sdk: ^3.5.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.8 # 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: ^5.0.0 # 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)。

除了列出应用 package 中包含的图片,一个图片资源还可以引用一个或多个特定分辨率的「变体」。想要了解更多信息,请参阅 资源和图像 页面的 分辨率相关 部分。关于从 package 的依赖关系中添加资源的信息,见同一页的 package 依赖关系中的图片资源 部分。

字体

#

如上例所示,字体部分的每个条目都应该有一个包含字体家族名称的 family 键,以及一个包含指定字体的资源和其他描述符的 fonts 键。

关于使用字体的例子,请参见 Flutter 实用教程 中的 使用自定义字体从 package 中导出字体 教程。

更多信息

#

要查看更多有关 package、插件和 pubspec 的信息,请参考下面文档: