Pubspec 文件的 Flutter 部分
每个 Flutter 项目都包含一个 pubspec.yaml
文件,通常被称为 pubspec。当你创建一个新的 Flutter 项目时,会生成一个基本的 pubspec。它位于项目的根目录,包含 Dart 和 Flutter 工具需要了解的项目元数据。
pubspec 是用 YAML 写的,它具有可读性,但要注意 缩进符号(制表符和空格)很重要。
pubspec 文件指定了项目所需的依赖,如特定的 package(及其版本)、字体或图像文件。它还指定了其他配置,如对开发者 package 的依赖(如测试或模拟 package),或对 Flutter SDK 版本的特殊限制。
Dart 和 Flutter 项目共有的字段在 dart.dev 的 pubspec 文件 中描述。本页列出了只对 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.2.0 <4.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.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.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 的信息,请参考下面文档:
-
dart.dev 上介绍的 创建 package
-
dart.dev 上介绍的 package 的术语表
-
dart.dev 上介绍的 package 的依赖
-
dart.dev 上介绍的 使用 package
-
dart.dev 上介绍的 避免提交的内容