参考
dart是通过打包来实现模块或库的分发和使用的,有两种类型的包:应用程序包(可能包含很多本地库)、库包。
包的构成
pubspec.yaml
管理和维护app/lib的依赖和资源
lib目录
用于存放要打包到库里的代码。lib下可以有任意的目录结构,一般功能实现相关的代码放在lib/src目录下。通常该目录为私有目录,应该避免被第三方包引入。可以通过在lib目录下新增文件的方式间接引用到src下的内容。
打包时如没有特别指定library指令参数,将基于lib/file.dart的路径和名称来生成库的唯一标识
包的组织
为了方便管理,包的内容应该最小化(只包括所需的内容),虽然dart有提供part指令用于分包,但并不推荐使用。
lib/<package-name>.dart
该文件将作为重要的文件对外提供API,只需要import该文件即可使用所有该库提供的功能。
当然,库也可以包含其他可被引入,非源的内容。
该库的主要文件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:指令导入。
其他文件
建议测试相关放在test目录下
命令行工具相关放在bin目录下
如果有一些库的使用例子,可以放在example目录下
任何辅助相关的工具或可执行程序,可以放在tool目录下
文档的生成
通过dartdoc将代码中文档注释的内容生成API文档