【Flutter 實戰】pubspec.yaml 配置檔案詳解
阿新 • • 發佈:2020-11-05
![](https://img2020.cnblogs.com/other/467322/202011/467322-20201104214438153-1813741256.png)
> **老孟導讀**:**pubspec.yaml** 檔案是 Flutter 中非常重要的配置檔案,下面就讓我們看看裡面各個配置的含義。
pubspec.yaml 是 Flutter 專案的配置檔案,類似於 Android 中的 Gradle 配置檔案,下面我們就看看 pubspec.yaml 中各個屬性的配置。
建立一個新的專案(Flutter Application),pubspec.yaml 位於根目錄,如圖:
![](https://img2020.cnblogs.com/other/467322/202011/467322-20201104214438468-701942627.png)
專案中預設配置,去掉註釋部分,剩下如下:
```dart
name: flutter_app
description: A new Flutter application.
publish_to: 'none'
version: 1.0.0+1
environment:
sdk: ">=2.7.0 <3.0.0"
dependencies:
flutter:
sdk: flutter
cupertino_icons: ^1.0.0
dev_dependencies:
flutter_test:
sdk: flutter
flutter:
uses-material-design: true
```
下面我們一個一個的詳細介紹下。
### name
此屬性表示包名(package name),此屬性是非常重要的,引入其他檔案時需要使用此包名:
```dart
import 'package:flutter_app/home_page.dart';
```
如果你修改包名為 ,那麼相應的引入也需要修改:
```dart
import 'package:flutter_app_demo/home_page.dart';
```
如果你建立了一個 Flutter 外掛併發布到 [pub.dev](https://pub.dev/),那麼此屬性將會作為標題顯示,同時其他人引用也需要使用此屬性。
![](https://img2020.cnblogs.com/other/467322/202011/467322-20201104214439494-988111155.png)
### description
**description** 屬性是一個**可選**配置屬性,是對當前專案的介紹。如果作為外掛釋出到 pub.dev 上,此值顯示在如下位置:
![](https://img2020.cnblogs.com/other/467322/202011/467322-20201104214440262-1054399556.png)
### version
此屬性應用程式的版本和內部版本號,格式為 **x.x.x+x**,例如:**1.0.0+1**,這個版本號稱為 **語義版本號(semantic versioning )**,semantic versioning 相關知識請[參考此處](https://semver.org/spec/v2.0.0-rc.1.html)。
版本號 **+** 前面到部分,叫做 **version number**,由 2 個小點隔開,後面的部分叫做 **build number**。
在 Android 中 version number 對應 **versionName**,build number 對應 **versionCode**,在 android/build.gradle 下有相關配置,
![](https://img2020.cnblogs.com/other/467322/202011/467322-20201104214440681-910017079.png)
早期的版本 build.gradle 中 versionName 和 versionCode 是直接寫死的數字,如下:
![](https://img2020.cnblogs.com/other/467322/202011/467322-20201104214442212-664199272.png)
此時修改版本號只能通過修改 build.gradle 。而現在可以直接通過 pubspec.yaml 進行修改。
如果是外掛,那麼使用者可以通過此版本號指定使用哪個版本,
```dart
path_provider: ^1.6.22
```
版本的指定有多種形式:
#### 不指定或者 any
```dart
path_provider:
path_provider: any
```
此種格式預設載入 **最新的版本**,但強烈不推薦使用此方式,因為版本的變化會導致介面發生變化,專案出現編譯異常。
#### x.y.z
明確指定版本
```dart
path_provider: 1.6.22
```
指定依賴的版本。
#### <=x.y.