1、Dart : 创建并发布Dart Libraries;

  Libraries是可以轻松创建共享模块化代码的好方法。在Dart生态系统中,Libraries是作为包创建和分发的。Dart有两种包:应用程序包、本地库和Libraries包;

  如下为最简单的Lib的布局:

    root dir 
             - lib
                  -file.dart
             - pubspec.yaml      
复制代码

  一个Lib的最低要求是:

  • pubspec.yaml:

    Lib的pubspec.yaml文件与应用程序的包的文件相同。没有特殊的名称来指定软件包是Lib。

  • lib文件夹:

    Lib的代码位于lib目录下,并且对其他包是公共的。按照惯例实现的代码都在lib/src下。lib/src下的代码被认为是私有的;其他软件包永远不需要导入src/...,要使lib/src下的API公开,你可以在lib的文件中导出lib/src下的文件。

注:注意:如果未指定library,则会根据每个lib的路径和文件名生成唯一标记。 因此,除非计划生成库级文档,否则应该从代码中省略库指令。

组织一个Dart Lib

  当创建小的单个Lib时,库包最容易维护、扩展和测试。在大多数情况下,每个类都应该在各自的Lib中,除非有两个类耦合的情况。

注:part指令允许将库拆分为多个Dart文件,应该避免使用该指令。

  直接在lib/.dart下创建一个Lib文件,它导出所有公共的API。这允许用户通过导入单个文件来获取库的所有功能。

  Lib目录还可能包含其他可导入的非src库。例如,主库可能跨平台工作,但你创建依赖dart的Lib:iodart:html

 root dir 
         - example 
                  - example_server.dart
         - lib
                  - src
                       -body.dart
                       -utils.dart
                  - shelf.dart
                  - shelf_io.dart
         - test 
                  - test.dart
         - tool  
                  - travis.sh
复制代码

在lib目录下,主库文件shelf.dart从lib/src中导出文件

export 'src/utils.dart'
export 'src/body.dart'
复制代码

导入Lib并使用;

  导入库文件时,可以使用package:指令指定该文件的URI:

import 'package:utilities/utilities.dart';
复制代码

生成文档;

  可以使用dartdoc工具来为Lib生成API文档。

发布开源库

  如果lib是开源的,可以在Pub网站上共享它。 要发布或更新库,使用pub publish,它会上传您的包并创建或更新其页面。pub网站不仅托管您的包,还生成并托管您的包的API参考文档。

注:要发布到Pub站点以外的地方,或者为了防止在任何地方发布,请使用pubspec中定义的publish_to字段。

准备发布

  发布Lib时,遵循pubspec格式和包结构很重要。其中一些是必需的,以便其他人能够使用你的包。 其他建议是帮助用户更容易理解和使用您的包。

  在这两种情况下,pub都会尝试通过指出哪些更改有助于使你的程序包在Dart生态系统中发挥更好的作用。 上传包时还有一些其他要求:

  • 你必须包含包含开源许可证的许可证文件(名为LICENSE,COPYING或某些变体)。推荐使用Dart本身使用的BSD许可证,还必须拥有合法权利重新分发上传的任何内容。
  • gzip压缩后,您的包必须小于10MB。如果它太大,请考虑将其拆分为多个包,或减少包含的资源或示例的数量。
  • 你的包应该只有托管依赖项。Git依赖是允许的,但强烈反对;并非所有使用Dart的人都安装了Git,并且Git依赖项不支持版本解析以及托管依赖项。

请注意,与您的Google帐户关联的电子邮件地址会与上传的任何软件包一起显示在Pub网站上。

几个重要文件

  Pub使用几个文件的内容在/packages/<your_package>中为您的包创建一个页面。 以下是影响包的页面外观的文件:

  • 自述文件:自述文件(README,README.md,README.mdown,README.markdown)是软件包页面中的主要内容。
  • CHANGELOG:你的软件包的CHANGELOG(CHANGELOG,CHANGELOG.md,CHANGELOG.mdown,CHANGELOG.markdown)如果找到,也会出现在软件包页面的标签中,以便开发人员可以直接从Pub网站上阅读。
  • pubspec:你的软件包的pubspec.yaml文件用于在软件包页面的右侧填写有关软件包的详细信息,如描述,作者等。
发布文件

  第一次发布时可以使用dart run

pub publish --dry-run
复制代码

  Pub将检查以确保你的包是否遵循pubspec格式和包结构布局约束,然后将包上传到Pub站点。 Pub还会显示它打算发布的所有文件。 以下是发布名为transmogrify的包的示例:

Publishing transmogrify 1.0.0
    .gitignore
    CHANGELOG.md
    README.md
    lib
        transmogrify.dart
        src
            transmogrifier.dart
            transmogrification.dart
    pubspec.yaml
    test
        transmogrify_test.dart
Package has 0 warnings.
复制代码

当准备发布包时,删除--day-run参数:

pub pushlish
复制代码

  当包成功上传到Pub站点后,任何pub用户都可以在他们的项目中下载或依赖它。 例如,如果刚刚发布了transmogrify软件包的1.0.0版本,那么另一个Dart开发人员可以将其添加为pubspec.yaml中的依赖项:

dependencies:
  transmogrify: ^1.0.0
复制代码
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值