Flutter 如何建立私有公共外掛

島上碼農發表於2021-05-12

flutter pub中有很多開源庫,如dio、provider等,這些都是package,直接在pubspec中引入就可以在工程中使用。看下如何自己進行建立

建立package

通過以下命令列建立一個package

flutter create --template=package plugins
複製程式碼

建立演示程式碼(可選)

在test檔案中,對存dart庫進行單元測試,但是在涉及頁面等功能,需要有一個demo,需要在工程內部建立一個demo。
如果要釋出到公有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引入即可。

相關文章