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 则会退出且不继续进行上传。此时如果想继续上传,可以这样做。