[TOC]
一、常用的第三方Package
参考文章:
二、第三方库的导入
- 1、添加依赖:在
pubspec.yaml
文件中找到dependencies
在里面添加要导入的第三方库。
注意①:导入的位置要与dependencies下面的flutter上下对齐,不然会不通过。
注意②:一般写在dependencies下面即可,dependencies 与dev_dependencies 分别是代表用户发布环境与本地环境开发。
2、安装依赖:在 terminal中: 运行
1
2
3flutter packages get
或者
flutter packages upgrade或者在IntelliJ等开发工具中点击
pubspec.yaml
文件顶部的Packages Get
即可安装。3、使用依赖:在您的Dart代码中添加相应的
import
语句。
三、如何依赖未发布的packages
即使未在Pub上发布,软件包也可以使用。对于不用于公开发布的专用插件,或者尚未准备好发布的软件包,可以使用其他依赖项选项。
路径 依赖: 一个Flutter应用可以依赖一个插件通过文件系统的
path:
依赖。路径可以是相对的,也可以是绝对的。例如,要依赖位于应用相邻目录中的插件’plugin1’,请使用以下语法1
2
3dependencies:
plugin1:
path: ../plugin1/Git 依赖: 你也可以依赖存储在Git仓库中的包。如果软件包位于仓库的根目录中,请使用以下语法:
1
2
3
4dependencies:
plugin1:
git:
url: git://github.com/flutter/plugin1.gitGit 依赖于文件夹中的包: 默认情况下,Pub假定包位于Git存储库的根目录中。如果不是这种情况,您可以使用path参数指定位置,例如:
1
2
3
4
5dependencies:
package1:
git:
url: git://github.com/flutter/packages.git
path: packages/package1
四、开发Packages
Step 1: 创建package工程
要创建Dart包,请使用--template=package
来执行 flutter create
,如:
1 | flutter create --template=package adapt_cjhelper |
这将在adapt_cjhelper/
文件夹下创建一个具有以下专用内容的package工程:
Step 2: 实现package功能
对于纯Dart包,只需在主lib/<package name>.dart
文件内或lib
目录中的文件中添加功能 。
五、发布Packages
1、处理pubspec.yaml
问题1:处理包的相互依赖
如果您正在开发一个hello
包,它依赖于另一个包,则需要将该依赖包添加到pubspec.yaml
文件的dependencies
部分
1 | dependencies: |
2、验证 packages
运行 dry-run 命令以查看是否都准备OK了:
1 | flutter packages pub publish --dry-run |
3、发布 packages
最后, 运行发布命令:
1 | flutter packages pub publish --server=https://pub.dev |
3.1、如果你不是第一次上传时候,但又报了如下错 Authentication failed!
则你需要重新登录flutter pub login
3.2、如果是第一次上传
第一次上传,会要求登录谷歌账号。这个时候终端会出现一个url地址,类似这样:
将地址复制出来,在浏览器URL中输入打开这个地址,允许登录谷歌账号就可以了。确认登录后,就会从执行终端将开始连接谷歌并上传我们的插件包。
1 | Waiting for your authorization... |
变到
1 | Authorization received, processing... |
如下:
此步有可能会执行失败,提示如下错误,这是因为谷歌被屏蔽而导致的失败。
原因是虽然你网页成功了,但是终端ping google.com
还没翻成功。
相关原理详细见:为什么ping不通google.com
此时你去执行curl ip.gs
,得到的是不成功的超时结果。
这个时候我们需要设置终端的HTTP代理。查看我们的代理,并在终端中设置对应的值,如下:
在终端中执行如下命令配置代理:
1 | set http_proxy=http://127.0.0.1:1080 |
如果你使用的是ClashX可以直接复制终端命令:
得到的结果会是:
1 | export https_proxy=http://127.0.0.1:7890 http_proxy=http://127.0.0.1:7890 all_proxy=socks5://127.0.0.1:7890 |
配置好后重新执行发布命令
1 | flutter packages pub publish --server=https://pub.dev |
即可。
附:macOS 终端设置http和https代理
1、运行命令 vim ~/.bashrc
, 写入如下内容
1 | export http_proxy="http://127.0.0.1:4780" |
4780为本地http代理端口,可能会有所偏差,需要查询代理配置。
当通过软件启动代理的时候,其启动按键,会为你的网络设置开启如下三个代理。而上面的代理接口为下:
2、运行命令 vim ~/.bash_profile
,写入如下内容
1 | source ~/.bashrc |
3、重启终端,运行命令curl ip.gs
显示当前ip和所属地区查看是否代理成功。成功的话,国家是United States
其他参考文章:终端连代理方法
其他
1、Flutter的pubspec.yaml是本地文件,怎么把路径抽出来
在 Flutter 中,如果你想将 pubspec.yaml
文件中的路径抽出来,可以使用 environment
和 definie
关键字来定义变量。例如:
1 | environment: |
在这个示例中,我们使用 $lib_path
定义了变量,并将 lib/
赋值给它。然后,在 dependencies
部分中,我们使用 $lib_path
变量来引用 my_package
的路径。
这样做的好处是,如果你想要修改 lib
文件夹的路径,你只需要在 pubspec.yaml
文件中修改 $lib_path
变量的值即可,而不需要在整个文件中搜索和替换路径。