依赖管理
在原生开发中,Android
使用Gradle
来管理依赖,iOS
用Cocoapods
或Carthage
来管理依赖。Flutter
使用配置文件pubspec.yaml
(位于项目根目录)来管理第三方依赖Package。
YAML是一种直观、可读性高并且容易被人类阅读的文件格式,它和xml或Json相比,它语法简单并非常容易解析,所以YAML常用于配置文件,Flutter也是用yaml文件作为其配置文件,Flutter项目默认的配置文件是pubspec.yaml。
特别注意的是,日常开发中,yaml文件每次编辑要注意
层级空格
,有时候明明是复制过来的,但是因为多缩进了一个空格,就报错了
依赖来源
1. Pub仓库
Pub 是Google官方的Dart Packages仓库,类似于node中的npm仓库,android中的jcenter,我们可以在上面查找我们需要的包和插件,也可以向pub发布我们的包和插件。 eg:
dependencies:
# 网络包
http: 0.12.1
2. git仓库
- 在git仓库根目录
dependencies:
pkg1:
git:
url: git://github.com/xxx/pkg1.git //在git仓库根目录
- 不在git仓库的根目录
dependencies:
package1:
git:
url: git://github.com/flutter/packages.git
path: packages/package1 //不在git仓库的根目录
3. 本地包
dependencies:
pkg1:
path: ../../code/pkg1 //本地路径
安装使用
1.添加依赖
打开 pubspec.yaml文件,然后在dependencies(Project - pubspec.yaml - dependencies)
下添加http(网络请求pub)
:
dependencies:
# 网络包
http: 0.12.1
2.安装依赖
- 方法一: 在 terminal中: 运行
flutter packages get
- 方法二: 在 IntelliJ/AS IDE中: 点击
pubspec.yaml
文件顶部的Packages Get
3.导入 import使用
文件中导入 对应包,其中as相当于取别名,防止方法名冲突
import 'package:http/http.dart' as http;
4.升级依赖包
如果修改了pubspec.yaml文件,或者只想更新应用依赖的包(不包括Flutter SDK),使用以下命令:
//获取pubspec.yaml文件中列出的所有依赖包
flutter packages get
//获取pubspec.yaml文件中列出的所有依赖包的最新版本,拿到版本号后,修改pubspec.yaml文件,再次 flutter packages get 即可
flutter packages upgrade
版本控制
dependencies:
# 指定版本
xxPlugin: 0.12.1
# 指定一个最小和最大的版本号
xxPlugin: '>=0.1.2 <0.2.0'
#限定版本 '^0.1.2' //大版本不变的区间写法,相当于'>=0.1.2 <0.2.0'
xxPlugin: ^0.1.2
#任意版本
xxPlugin: any
# >3.0.9
xxPlugin: '>3.0.9'//注意有引号
关于 ^
请参考 caret 语法
环境控制
//这部分是生产环境,里面的Package会在发包时被一起打包
//项目的第三方插件Package
dependencies:
flutter:
sdk: flutter
# The following adds the Cupertino Icons font to your application.
# Use with the CupertinoIcons class for iOS style icons.
cupertino_icons: ^0.1.3
xxPlugin: ^3.0.9
//这部分是开发环境,发包时不会被打包,仅仅在开发时用
dev_dependencies:
flutter_test:
sdk: flutter
xxPlugin: ^3.0.9