Dart tour: 20、Package
Dart
生态系统使用包(Package
)来管理共享软件,比如:库和工具。使用 Pub
(包管理工具)来获取包。
Pub
支持从本地文件系统或其他的位置,比如 Git
仓库,来加载可用的包,并对其进行版本依赖管理,从而帮助我们获得版本兼容的软件包以及 SDK。
包目录中至少包含一个 pubspec
(pubspec.yaml
) 文件。 pubspec
文件记录一些关于包的元数据。此外,包还包含其他依赖项(在 pubspec
中列出), Dart
库,应用,资源,测试,图片,以及示例。
#
使用 Package通过以下步骤,引用使用包:
- 创建一个
pubspec
(pubspec.yaml
)。
- 使用
Pub
获取当前所依赖的包。
- 如果当前代码依赖包中的某个库,导入(import)该库。
- 如果需要升级包的版本,需要升级依赖。
升级依赖命令并非总是可以将所有的包更新到最新版本,原因是
pubspec
文件中的一些包之间有版本限制的冲突。想要确定 已经过时且需要编辑的包,请使用dart pub outdated
命令。
#
创建 Package本篇将通过最常见的 Library Package
来介绍如何创建一个 Package
。
在文件的头部使用
part
命令,能够将一个Library
分割成多个Dart
文件。这里,我们建议应该创建Mini Library
,而避免使用part
命令。
#
Logger演示库 yxlogger
创建 yxlogger
的实践流程:
- 按照目录新建好文件。
- 编辑
pubspec.yaml
, 然后运行dart pub get
获取依赖。
- 编写
Logger
抽象类/接口以及对应的实现。
- 编写头文件。
- 编写单元测试
#
发布 Package
Publish
命令是Pub
中的一个命令。该命令用于将Package
发布到pub.dev
上以供其他人下载和依赖。
在发布前,可以通过检查流程查看当前还有哪些地方没准备好。
如果检查流程没问题,或者出现的是警告,可以通过这个命令上传。
在上传的时候,可能需要登录你的谷歌账号。请注意控制台输出的信息。
在上传时,无法正常上传遇到错误,可以尝试加上
sudo
运行。 SDK issues#16658
如果 Package
存在错误,Pub
则会退出且不继续进行上传。此时如果想继续上传,可以这样做。