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 可用的字段会高亮显示。

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

publish_to: 'none'

version: 1.0.0+1

environment:
  sdk: ">=2.18.0 <3.0.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.5 # Only required if you use Cupertino (iOS style) icons

dev_dependencies:
  flutter_test:
    sdk: flutter # Required for a Flutter project that includes tests

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 的信息,请参考下面文档: