「Flutter官方文档」学习笔记 - package.yaml 笔记

pubspec的格式

必填属性:

选填属性:

name

当前项目的名称,也是在pub世界中的唯一名称。
命名规范,与一般的编程名词基本一致,只能使用a-z0-9_这些字符,且不能以数字开头

version

项目的版本号,遵从版本语法规范

description

项目的描述

author / authors

[name]<[email]>
或者以数组的形式
[name]<[email]>
[name]<[email]>

homepage

(略)

Repository

(略)

Issue tracker

(略)

documentation

(略)

dependencies

依赖的来源,在每个包对象(YAML对象)的属性中定义:

  • sdk
  • hosted package
  • git
  • path
    每个被声明的依赖package,其实是YAML数据结构中的对象。
    换成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语法规则,^1.0.0,因为遵从了版本语法规范,1.0.0的三个数字分别叫MAJOR,MINOR,PATCH, 根据规则,MAJOR version when you make incompatible API changes, 只要MAJOR一致,各版本的API都会兼容,反之则不确定。所以用^表示MAJOR位置的数字不变,其他位置随意,可以保证依赖的可靠。
注意啊,caret语法是 dart 1.8.3 才开始引入的

Pub还支持dev_dependencies 和 dependency_overrides。
dev就不多说了,较容易理解。
override,是可以声明临时覆盖上述的同名依赖。一般在针对自定义package的调试,或升级某个package版本时候做兼容性调试可以用,比较方便。

Executables

所开发的的library有提供CLI可用的脚本功能,可以在这里声明要暴露的命令名称。
具体查看pub global

public_to

顾名思义,发版到仓库,默认是https://pub.dartlang.org,声明none可以禁止发布,避免错误发版。

SDK constraints

声明针对dart SDK 和 Flutter SDK相关的值

dart SDK 的版本号 是不能使用caret语法,因为这个引用不是使用dart本身解析的,所以并没有这个语法。
当dart 1.19.0,开始,支持指定flutter的版本。

    原文作者:VinaChiong
    原文地址: https://www.jianshu.com/p/699903626673
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞