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 的資訊,請參考下面文件: