dart 系列之: 创建 Library package
简介
在 dart 系统中,有 pubspec.yaml 文件的应用就可以被成为一个 package。而 Libray package 是一类特殊的 package,这种包可以被其他的项目所依赖. 也就是通常所说的库。
如果你也想你写的 dart 程序可以上传到 pub.dev 上,或者提供给别人使用,则来看看这篇文章吧。
Library package 的结构
先看下 library package 的结构:
这是一个最简单的 Library package 的结构,在 root 目录下面,我们有一个 pubspce.yaml 文件。然后还有一个 lib 目录存放的是 library 的代码。
一般来说 lib 下面的库是可以供外部进行引用的。如果是 library 内部的文件,则可以放到 lib/src 目录下面,这里面的文件表示是 private 的,是不应该被别的程序引入的。
如果想要将 src 中的包导出供外部使用,则可以在 lib 下面的 dart 文件中使用 export,将需要用到的 lib 导出。这样其他用户只需要 import 这个一个文件即可。
export 的例子如下:
上面的代码是 flutter 的 animation 库。
导入 library
怎么使用呢?我们可以使用 import 语句来导入对应的 lib:
如果是内部文件的导入,则可以使用相对路径。只有在导入外部 package 的时候才需要加上 package:前缀。
条件导入和导出 library
因为 dart 是设计在可以在不同的平台上进行工作,所以一个 library 在不同的平台可能需要导入或者导出不同的 library 文件, 这就叫做条件导入和导出。
比如可以通过判断 dart 库是 io 库还是 html 库来选择导出不同的文件:
上面的意思是,如果在 app 中能够使用 dart:io,那么就导出 src/hw_io.dart.
如果能够使用 dart:html,那么就导出 src/hw_html.dart,否则就导出 src/hw_none.dart。
如果是条件导入的话,将 export 改成 import 即可。
添加其他有效的文件
因为不同的 library 有不同的作用,所以通常需要添加一些额外的文件来保证 library 的有效性和完整性。
为了保证 library 的有效性,需要添加测试代码,测试代码通常放在 test 目录中。
如果是创建命令行工具,则需要将对应的工具放到 tools 目录中。
另外还有 README.md 和 CHANGELOG.md 等文件。
library 的文档
dart 文档可以使用 dartdoc 这个工具来生成。dart 中的文档格式是以///开头的,如下:
发布到 pub.dev
一个最好共享 library 的方式就是将其发送到 pub.dev 上。具体的命令是:pub publish。
总结
以上就是 dart 中创建 library 的全部内容。
本文已收录于 http://www.flydean.com/11-dart-create-package/
最通俗的解读,最深刻的干货,最简洁的教程,众多你不知道的小技巧等你来发现!
欢迎关注我的公众号:「程序那些事」,懂技术,更懂你!
版权声明: 本文为 InfoQ 作者【程序那些事】的原创文章。
原文链接:【http://xie.infoq.cn/article/dca538cbdec872a3dd426c73e】。文章转载请联系作者。
评论