pubspec的格式
必填屬性:
選填屬性:
- Author/Authors
- Homepage
- Repository
- Issue tracker
- Documentation
- Dependencies
- Executables
- Publish_to
- SDK constraints
name
當前項目的名稱,也是在pub世界中的唯一名稱耻陕。
命名規(guī)范袍睡,與一般的編程名詞基本一致昌简,只能使用a-z0-9_
這些字符,且不能以數(shù)字開頭
version
項目的版本號序六,遵從版本語法規(guī)范
description
項目的描述
author / authors
[name]<[email]>
或者以數(shù)組的形式
- [name]<[email]>
- [name]<[email]>
homepage
(略)
Repository
(略)
Issue tracker
(略)
documentation
(略)
dependencies
依賴的來源,在每個包對象(YAML對象)的屬性中定義:
- sdk
- hosted package
- git
- path
每個被聲明的依賴package,其實是YAML數(shù)據(jù)結(jié)構(gòu)中的對象眷篇。
換成json形式來看:
{
...
dependencies: {
"pkg-A":{"sdk":"flutter", "version":"x.x.x"},
"pkg-B":{"hosted":{"name":"xxx", "url":"xxxxxxxx"}, "version":"x.x.x"},
"pkg-C":{"git":"git://xxxxxxx/xxxxx/xxx.git"},
"pkg-D":{"path":"/xxx/xx/xxx"},
}
...
}
依賴的版本號
任意版本號寫法 any
,一般不推薦使用
確定的版本號寫法1.2.3
范圍寫法>=1.0.0 <2.0.0
荔泳,還可以使用caret語法
規(guī)則蕉饼,^1.0.0
,因為遵從了版本語法規(guī)范
玛歌,1.0.0的三個數(shù)字分別叫MAJOR
,MINOR
,PATCH
, 根據(jù)規(guī)則昧港,MAJOR version when you make incompatible API changes
, 只要MAJOR一致,各版本的API都會兼容支子,反之則不確定创肥。所以用^
表示MAJOR位置的數(shù)字不變,其他位置隨意,可以保證依賴的可靠叹侄。
注意啊巩搏,caret語法
是 dart 1.8.3 才開始引入的
Pub還支持dev_dependencies 和 dependency_overrides。
dev就不多說了趾代,較容易理解贯底。
override,是可以聲明臨時覆蓋上述的同名依賴撒强。一般在針對自定義package的調(diào)試禽捆,或升級某個package版本時候做兼容性調(diào)試可以用,比較方便尿褪。
Executables
所開發(fā)的的library有提供CLI可用的腳本功能睦擂,可以在這里聲明要暴露的命令名稱。
具體查看pub global
public_to
顧名思義杖玲,發(fā)版到倉庫顿仇,默認是https://pub.dartlang.org
,聲明none
可以禁止發(fā)布,避免錯誤發(fā)版摆马。
SDK constraints
聲明針對dart SDK 和 Flutter SDK相關(guān)的值
dart SDK 的版本號 是不能使用caret語法
臼闻,因為這個引用不是使用dart本身解析的,所以并沒有這個語法囤采。
當dart 1.19.0,開始述呐,支持指定flutter的版本。