在Flutter中,什么是在pubspec.yaml文件中添加软件包的最佳方法?

时间:2018-12-12 11:52:02

标签: dart flutter

在扑朔迷离中,我有点想添加软件包。

不是在版本中添加软件包,而是在 pubspec.yaml 文件中添加没有版本的软件包的最佳方法吗?

可能是,默认情况下它将获取最新版本。但是添加新版本后会发生什么情况?

1 个答案:

答案 0 :(得分:5)

您可以省略版本或使用any,但是最好添加版本范围。

避免更新破坏您的应用/软件包

指定版本约束有助于避免在包含依赖项更改的新依赖性版本(与旧代码不兼容)可用时运行flutter packages get来意外破坏应用程序。
然后,当您将代码与新版本的依赖项对齐时,可以有意地扩展依赖项的版本范围。

Dart和软件包应遵循语义版本控制,这意味着当更新包含重大更改时,需要增加主版本号。

对于1.0.0以下的版本,增加次要版本号表示重大更改。

^是定义版本范围的快捷方式,该版本范围指示已定义的版本以及所有不包含重大更改的更高版本。

因此通常您会使用

some_dependency: ">=2.0.0 <3.0.0"

或简称

some_dependency: ^2.0.0

如果某些更新修复了2.1.0中的错误,您的应用程序或程序包将依赖于该错误,您可以使用

some_dependency: ">=2.1.0 <3.0.0"

或简称

some_dependency: ^2.1.0

性能

指定狭窄的版本约束也可以使flutter packages get/upgrade更快,特别是在您的应用程序包含大量依赖项的情况下,因为这会减少需要遍历以找到兼容的依赖项集的packages get/upgrade的搜索空间

缺少功能

如果可用的依赖版本比您的约束所允许的新(例如flutter packages get/upgrade对非Flutter Dart项目的支持)可用,请对https://github.com/flutter/flutter/issues/12627进行投票,以从pub get/upgrade获取正确的信息

另请参见