dart系列之:元世界pubspec.yaml檔案詳解

flydean發表於2021-11-19

簡介

pubspec.yaml是所有dart專案的靈魂,它包含了所有dart專案的依賴資訊和其他元資訊,所以pubspec.yaml就是dart專案的meta!

pubspec.yaml支援的欄位

根據dart的定義,pubspec.yaml中可以包含下面的欄位:

欄位名是否必須欄位描述
namepackage的名字
version如果釋出到pub.dev,則需要package的版本號
description如果釋出到pub.dev,則需要package的描述資訊
homepagepackage的主頁
repositorypackage的原始碼地址
issue_trackerpackage問題跟蹤地址
documentationpackage的文件資訊
dependenciespackage的依賴資訊
dev_dependenciespacakge的dev依賴資訊
dependency_overrides想要覆蓋的package
environmentdart2需要
executablespackage的可執行檔案路徑
publish_topackage將如何釋出
注意,以上是dart中pubspec.yaml支援的欄位,如果是在flutter環境中,則會有些額外支援的欄位。

# 一個例子

我們看一個具體的例子:

 name: my_app
version: 11.15
description: >-
  this is a new app
homepage: http://www.flydean.com
documentation: http://www.flydean.com
environment:
  sdk: '>=2.10.0 <3.0.0'
dependencies:
  efts: ^2.0.4
  transmogrify: ^0.4.0
dev_dependencies:
  test: '>=1.15.0 <2.0.0'

欄位詳情

下面來看下各個欄位的詳情和限制情況:

  1. Name

name表示的是包的名字,name必須是全小寫,如果有多個詞的話,可以用下劃線來區分,如:my_app.

並且只能使用小寫字母和數字的組合,同時不能以數字開頭,並且不要使用dart中的保留字。

  1. Version

Version表示的是版本號,版本號是由點分割的三個數字,如:11.15.0. 後面還可以跟上build版本號:+1, +2, +hotfix.oopsie, 或者預釋出版本等:-dev.4, -alpha.12, -beta.7, -rc.5.

  1. Description

package的描述資訊最好使用英文來描寫,長度是60 到180個字元,表示這個包的作用。

  1. Dependencies

有兩種依賴資訊,一種是所有使用到這個packages的人都需要用到的依賴,這種依賴放在dependencies中。

還有一種是隻用在當前pacakge開發中的包,這種依賴放在dev_dependencies中。

在某些情況下,我們有可能需要覆蓋某些依賴包,則可以放在:dependency_overrides中。

  1. Executables

有些pacakges提供的是工具供大家使用,這些工具有可能是命令列工具,所以需要在executables中指定可以執行的命令的路徑。

比如下面的配置:

executables:
  slidy: main
  fvm:

那麼在執行pub global activate之後,就可以在全域性執行slidy來執行bin/main.dart, 和fvm來執行binfvm.dart.

  1. environment

因為Dart是一門新的語言,所以目前來說其變動還是挺大的。所以有些應用可以依賴於不同的dart版本,這時候就需要用到environment:

environment:
  sdk: '>=2.10.0 <3.0.0'

上面的程式碼中,我們指定了dart sdk的版本範圍。

從dart1.19之後,environment:中還支援指定flutter的版本:

environment:
  sdk: '>=1.19.0 <3.0.0'
  flutter: ^0.1.2

總結

以上就是dart的元世界pubspec.yaml詳解。

本文已收錄於 http://www.flydean.com/10-dart-pubspec/

最通俗的解讀,最深刻的乾貨,最簡潔的教程,眾多你不知道的小技巧等你來發現!

歡迎關注我的公眾號:「程式那些事」,懂技術,更懂你!

相關文章