Flutter创建私有的公共组件

作者: 岛上码农 | 来源:发表于2020-05-19 21:58 被阅读0次

    flutter pub中有很多开源库,如dio、provider等,这些都是package,直接在pubspec中引入就可以在工程中使用。看下如何自己进行创建

    创建package

    通过以下命令行创建一个package

    flutter create --template=package plugins
    

    创建演示代码(可选)

    在test文件中,对存dart库进行单元测试,但是在涉及页面等功能,需要有一个demo,需要在工程内部创建一个demo。<br />如果要发布到公有pub上,需要写上示例代码,方便别人知道如何使用。

    cd plugins
    flutter create example
    

    得到的目录结构如下所示:

    |____CHANGELOG.md
    |____LICENSE
    |____README.md
    |____example
    |____lib
    | |____common
    | | |____not_found.dart
    | |____components
    | | |____app_bar_factory.dart
    | |____plugins.dart
    | |____routers
    | | |____route_manager.dart
    |____plugins.iml
    |____pubspec.lock
    |____pubspec.yaml
    |____test
    | |____plugins_test.dart
    

    说明:

    • CHANGELOG.md 每次版本发布修改日志,可以进行维护
    • LICENSE 开源库,所属开源协议
    • README.md 库的介绍
    • example 测试项目,可以在example - pubspec.yaml 中,对引入目标库
    • lib 库实现文件目录,默认为公开目录,其他库可以直接使用。实现代码放在lib/src目录(目录也可以自定义,自定义目录时需要指明引用哪个目录的代码)中,该目录为私有的,需要在lib目录下进行导出。
    • pubspec.yaml 包配置文件

    plugins工程配置

    打开pubspec.yaml,对库进行配置,需要完善全部信息。

    name: plugins // 与项目名称保持一致
    description: A new Flutter package project. // 库的介绍
    version: 0.0.1 // 版本号
    author:            // 作者
    homepage:     // 库的主页
    

    然后,对库文件增加实现类,并导出至lib。lib中创建了如下源码文件:

    • routers:route_manager.dart
    • components:app_bar_factory.dart
    • common: not_found.dart

    在plugins.dart文件中增加对实现文件的导出。

    library plugins;
    
    export 'package:plugins/routers/route_manager.dart';
    export 'package:plugins/components/app_bar_factory.dart';
    export 'package:plugins/common/not_found.dart';
    

    本地引入

    在其他工程中的pubspec.yaml中通过path引入本地包(如果发布到pub,可以用pub引入),同时应当引入本地包依赖的其他包,如本例中的fluro。注意path可以是相对路径也可以是绝对路径。对于协作的项目,建议放到相对路径或通过git引入。

    dependencies:
      flutter:
        sdk: flutter
      plugins:
        path: ../plugins/
      fluro: ^1.6.3
    

    编写Example

    在example目录的pubspec.yaml中通过path引入写好的package,编写示例代码。

    dependencies:
      flutter:
        sdk: flutter
    
      demo:
        path : ../
    

    发布到pub(公有资源)

    pub publish
    

    私有资源建议发布到自有的git仓库,然后通过git引入即可。

    相关文章

      网友评论

        本文标题:Flutter创建私有的公共组件

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