美文网首页
dart学习-自定义库包的创建

dart学习-自定义库包的创建

作者: fan_xing | 来源:发表于2019-03-10 20:52 被阅读0次

参考
dart是通过打包来实现模块或库的分发和使用的,有两种类型的包:应用程序包(可能包含很多本地库)、库包。

包的构成

最简单的包的构成如图
pubspec.yaml

管理和维护app/lib的依赖和资源

lib目录

用于存放要打包到库里的代码。lib下可以有任意的目录结构,一般功能实现相关的代码放在lib/src目录下。通常该目录为私有目录,应该避免被第三方包引入。可以通过在lib目录下新增文件的方式间接引用到src下的内容。

打包时如没有特别指定library指令参数,将基于lib/file.dart的路径和名称来生成库的唯一标识

包的组织

为了方便管理,包的内容应该最小化(只包括所需的内容),虽然dart有提供part指令用于分包,但并不推荐使用。

lib/<package-name>.dart

该文件将作为重要的文件对外提供API,只需要import该文件即可使用所有该库提供的功能。
当然,库也可以包含其他可被引入,非源的内容。

dart提供的*shelf*库结构图
该库的主要文件shelf.dart,负责导出lib/src下的文件
export 'src/cascade.dart';
export 'src/handler.dart';
export 'src/handlers/logger.dart';
export 'src/hijack_exception.dart';
export 'src/middleware.dart';
export 'src/pipeline.dart';
export 'src/request.dart';
export 'src/response.dart';
export 'src/server.dart';
export 'src/server_handler.dart';

shelf库也包含一个小库shelf_io,以适用于处理依赖dart:io的HTTPRequest

包文件的导入

通过package:指令导入特定URI的文件

import 'package:utilities/utilities.dart';

库包lib下的文件之间可以用相对路径导入,否则必须通过package:指令导入。

如何导入lib/foo/a.dart

其他文件

建议测试相关放在test目录下
命令行工具相关放在bin目录下
如果有一些库的使用例子,可以放在example目录下
任何辅助相关的工具或可执行程序,可以放在tool目录下

文档的生成

通过dartdoc将代码中文档注释的内容生成API文档

库的发布

通过pub命令发布库,推荐发布到Pub site

相关文章

网友评论

      本文标题:dart学习-自定义库包的创建

      本文链接:https://www.haomeiwen.com/subject/siqupqtx.html