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: ">=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 的資訊,請參考下面文件:
-
dart.dev 上介紹的 建立 package
-
dart.dev 上介紹的 package 的術語表
-
dart.dev 上介紹的 package 的依賴
-
dart.dev 上介紹的 使用 package
-
dart.dev 上介紹的 避擴音交的內容