开发Dart packages
step 1 创建package
首先需要使用命令行创建package flutter create --template=package PACKAGENAME
这行命令会创建一个名为PACKAGENAME的package项目,其中包含如下文件。
-
lib/PACKAGENAME.dart
一个package项目中至少需要包含一个与其同名的.dart文件,通常作为umbrella使用。 -
pubspec.yaml
包含了package所有元信息的文件,通过配置其中的参数对package进行信息设置。例如name
、description
、version
、homepage
、(已经废弃)。author
-
LICENSE
一个空文件,需要填写授权内容。 -
CHANGELOG.md
跟踪记录版本变化的markdown文件。 -
README.md
对package做介绍的markdown文件。
step 2 编写执行代码
在lib/PACKAGENAME.dart文件编写实现代码,或者在 lib 目录下添加具体实现文件然后再import到lib/PACKAGENAME.dart文件中。需要注意,package实现代码需要在 lib 目录内,如想进一步了解package内容管理可以参考 dart library package。
test 目录下可以增加Unit tests。
step 3 准备上传pub
-
完善pubspec.yaml中
name
description
version
homepage
。author
-
执行
flutter pub pub publish --dry-run
对.yaml配置做检查,按照Suggestions提示做修改知道没有warning。 -
执行
flutter pub publish
发布。
在发布package之前需要确认
~/.bash_profile
中是否有PUB_HOSTED_URL
与FLUTTER_STORAGE_BASE_URL
这两个变量,如果存在是需要被注释掉的,不然会受到如下的错误提示:
Waiting for your authorization...
Authorization received, processing...
It looks like accounts.google.com is having some trouble.
Pub will wait for a while before trying to connect again.
OS Error: Operation timed out, errno = 60, address = accounts.google.com, port = 56264
pub finished with exit code 69
上传需要CLI翻墙,不然会收到如下提示:
It looks like accounts.google.com is having some trouble.
Pub will wait for a while before trying to connect again.
OS Error: Operation timed out, errno = 60, address = accounts.google.com, port = 58993
pub finished with exit code 69