參考
dart是通過打包來實(shí)現(xiàn)模塊或庫的分發(fā)和使用的乱豆,有兩種類型的包:應(yīng)用程序包(可能包含很多本地庫)、庫包征炼。
包的構(gòu)成
pubspec.yaml
管理和維護(hù)app/lib的依賴和資源
lib目錄
用于存放要打包到庫里的代碼间聊。lib下可以有任意的目錄結(jié)構(gòu)笤虫,一般功能實(shí)現(xiàn)相關(guān)的代碼放在lib/src目錄下淳玩。通常該目錄為私有目錄直撤,應(yīng)該避免被第三方包引入⊥勺牛可以通過在lib目錄下新增文件的方式間接引用到src下的內(nèi)容谋竖。
打包時(shí)如沒有特別指定library指令參數(shù),將基于lib/file.dart的路徑和名稱來生成庫的唯一標(biāo)識(shí)
包的組織
為了方便管理承匣,包的內(nèi)容應(yīng)該最小化(只包括所需的內(nèi)容)蓖乘,雖然dart有提供part指令用于分包,但并不推薦使用韧骗。
lib/<package-name>.dart
該文件將作為重要的文件對(duì)外提供API嘉抒,只需要import該文件即可使用所有該庫提供的功能。
當(dāng)然袍暴,庫也可以包含其他可被引入些侍,非源的內(nèi)容。
該庫的主要文件shelf.dart,負(fù)責(zé)導(dǎo)出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庫也包含一個(gè)小庫shelf_io容诬,以適用于處理依賴dart:io的HTTPRequest
包文件的導(dǎo)入
通過package:指令導(dǎo)入特定URI的文件
import 'package:utilities/utilities.dart';
庫包lib下的文件之間可以用相對(duì)路徑導(dǎo)入娩梨,否則必須通過package:指令導(dǎo)入。
其他文件
建議測試相關(guān)放在test目錄下
命令行工具相關(guān)放在bin目錄下
如果有一些庫的使用例子览徒,可以放在example目錄下
任何輔助相關(guān)的工具或可執(zhí)行程序,可以放在tool目錄下
文檔的生成
通過dartdoc將代碼中文檔注釋的內(nèi)容生成API文檔