跳至主要内容

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 唯一的字段已突出显示。

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)。

除了列出包含在应用包中的图像外,图像资源还可以引用一个或多个分辨率特定的“变体”。有关更多信息,请参阅 分辨率感知 部分的 资源和图像 页面。有关从包依赖项添加资源的信息,请参阅同一页面中的 包依赖项中的资源图像 部分。

字体

#

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

有关使用字体的示例,请参阅 使用自定义字体从包导出字体 教程,这些教程位于 Flutter cookbook 中。

更多信息

#

有关包、插件和 pubspec 文件的更多信息,请参阅以下内容