概念
依赖是一个 pub 包管理的核心概念,它在 pubspec.yaml 文件中被指定。开发人员只需要把自己直接依赖的包列出来,不需要写间接依赖的包,pub 会帮我们处理那些间接依赖,可以使用 pub deps 命令或者 flutter packages pub deps 命令查看包依赖信息。
用法
dependencies:
[依赖的包名]:
: 告诉 pub 这个包如何被定位,不是一个具体的 pub siet 或者是 git url,
而是获取包的方式,这些方式有 sdk、Hosted packages、Git packages、Path packages
[description]: 让 pub 定位到 source 的额外信息
version: 包的版本号
不同 source 的写法
SDK(表明这个包来自于哪个 sdk,使用这个参数要求 dart 版本必须在 1.19.0 之上)
dependencies:
flutter_driver:
sdk: flutter
version: ^0.0.1
Hosted packages(从 pub site 上下载的包)
dependencies:
transmogrify:
hosted:
name: transmogrify
url: http://your-package-server.com
version: ^1.4.0
Git packages(从 git 上获取的包)
dependencies:
kittens:
git:
url: git://github.com/munificent/kittens.git
ref: some-branch
Path packages(依赖的本地文件)
dependencies:
transmogrify:
path: /Users/me/transmogrify
不同的版本号约束写法
semantic versioning
例子:>=1.2.3、>1.2.3、<=1.2.3、<1.2.3、’>=1.2.3 <2.0.0′
Caret syntax(要求 dart 版本号在 1.8.3 及以上,并且 dart 会把 ^ 转换成 semantic versioning 的形式)
例子:^1.3.0
依赖类型
dependencies
项目中要依赖的包,例子如下:
dependencies:
path: ^1.3.0
collection: ^1.1.0
string_scanner: ^0.1.2
dev_dependencies
放一些跟项目逻辑无关的依赖包,比如和 test 相关的, 例子如下:
dev_dependencies:
test: '>=0.5.0 <0.12.0'
dependency_overrides
覆盖 dependencies 包依赖,例子如下:
dependency_overrides:
transmogrify:
path: ../transmogrify_patch/