使用命令创建生成插件模板
// PACKAGE_NAME首字母不能大写
dart create -t package <PACKAGE_NAME>
模板创建成功后,会在执行命令目录生成一个名为<PACKAGE_NAME>的文件夹,打开该文件夹,会发现已经生成了很多文件。
编写插件
添加依赖
生成的插件模板没有对 material 的引用,如果你的flutter插件编写需要用到 material 中的官方widget,那么在在pubspec.yaml中添加对 materail 的引入
# 添加以下配置
dependencies:
flutter:
sdk: flutter
如果要编写的插件也依赖于其他插件,也在这里添加,跟开发flutter应用一样
修改后,使用pub get更新依赖
编写插件内容
lib文件下存在两个插件模板文件:
- lib/src/<PACKAGE_NAME>.dart
///// (插件中需要暴露出来的类、方法所在的文件在这里export导出)
/// Support for doing something awesome.
///
/// More dartdocs go here.
library flucot;
export 'src/flucot_base.dart';
// 如过文件包含较多类,只想暴露特定类,使用show关键字
export 'src/flucot_base.dart' show Awesome;
// TODO: Export any libraries intended for clients of this package.
- lib/src/<PACKAGE_NAME>_base.dart
///// 一些公共的需要暴露出来的类、方法放到这里,统一在<PACKAGE_NAME>.dart文件中export导出(如果没有,就无需保留这个文件了)
// TODO: Put public facing types in this file.
/// Checks if you are awesome. Spoiler: you are.
class Awesome {
bool get isAwesome => true;
}
-
附一个flutter_screenutil插件的结构图:
flutter_screenutil.dart:
发包
关于发包
- 发包是永久的,编写的package一旦发布,将永久存在,不能撤回。
- 发布的包可以添加终止的标记,表示不再维护
发包步骤
-
访问 pub.dev/ 并登录 (参考资料里给的地址是国内镜像,无法登录)
-
登录成功后,选择右上角,创建发布者
-
创建发布者需要设置与发布者关联的域名,与域名绑定的网站需要将网站资源添加到Search Console, 这个操作可能需要几个小时的时间
-
创建好发布者以后,使用以下命令发包(或升级新版本):
dart pub publish
参考资料:
创建插件:dart.cn/guides/libr…