前言
类似android的自定义控件,flutter也提供了仓库供开发者上传各种自定义功能,我们就一起来探寻怎么提供一个公共组件供dependencies依赖调用
正文
step1 :创建一个Flutter Package
我们在AS中new出一个flutter package 起个名字选个路径就搞定
或者使用命令
flutter create --template=package frame_animate_widget
这将在frame_animate_widget/文件夹下创建一个具有以下专用内容的 package工程:
- lib/frame_animate_widget.dart:
Package的Dart代码 - test/frame_animate_widget_test.dart:
Package的单元测试代码.
此时我们的工程目录是这样的
step2 :实现包 package
对于纯Dart包,只需在主lib/.dart文件内或lib目录中的文件中添加功能 。也就是说我们的package 需要frame_animate_widget.dart
这个文件,否则发布的时候会遇到问题
此时我们来实现一个帧动画的widget
step3:整理文档
发布的功能Dart包是让别人使用的 此时我们需要详细的文档
建议将以下文档添加到所有软件包:当然没有也无所谓
- CHANGELOG.md 记录每个版本中的更改
- LICENSE 包含软件包许可条款的文件
- README.md 介绍包的文件
- 所有公共API的API文档 ,在发布软件包时,API文档会自动生成并发布到dartdocs.org
此时所有的工作已经就绪,可以开始发布了
step4:发布
一旦你实现了一个包,你可以在Pub上发布它 ,这样其他开发人员就可以轻松使用它
在发布之前,检查pubspec.yaml、README.md以及CHANGELOG.md文件,以确保其内容的完整性和正确性。
然后, 运行 dry-run 命令以查看是否都准备OK了:
在工程目录下执行flutter packages pub publish --dry-run
命令
➜ frame_animate_widget flutter packages pub publish --dry-run
Publishing frame_animate_widget 1.0.0 to https://pub.dartlang.org:
|-- CHANGELOG.md
|-- LICENSE
|-- README.md
|-- frame_animate_widget.iml
|-- lib
| '-- frame_animate_widget.dart
|-- pubspec.yaml
'-- test
'-- frame_animate_widget_test.dart
Package has 0 warnings.
最后, 运行发布命令:
➜ frame_animate_widget flutter packages pub publish
Publishing frame_animate_widget 1.0.0 to https://pub.dartlang.org:
|-- CHANGELOG.md
|-- LICENSE
|-- README.md
|-- frame_animate_widget.iml
|-- lib
| '-- frame_animate_widget.dart
|-- pubspec.yaml
'-- test
'-- frame_animate_widget_test.dart
Suggestions:
* Your pubspec.yaml includes an "author" section which is no longer used and may be removed.
Package has 1 warning. Upload anyway (y/n)? y
Pub needs your authorization to upload packages on your behalf.
In a web browser, go to https://accounts.google.com/o/oauth2/auth?access_type=offline%2F$$$$$##################www.googleapis.com%2Fauth%2Fuserinfo.email
Then click "Allow access".
如果是第一次发布 你需要登录一下账号授权 复制链接 浏览器打开授权
Waiting for your authorization...
Authorization received, processing...
Successfully authorized.
Uploading...
Successfully uploaded package.
Ok 至此 你已经将你的库上传至Pub