【发布时间】:2019-05-13 12:34:27
【问题描述】:
在颤振中我有点脑震荡添加包。
在 pubspec.yaml 文件中添加不带版本的包不是最好的方法吗?
可能是,默认情况下它会获取最新版本。但是添加新版本后会出现什么情况?
【问题讨论】:
在颤振中我有点脑震荡添加包。
在 pubspec.yaml 文件中添加不带版本的包不是最好的方法吗?
可能是,默认情况下它会获取最新版本。但是添加新版本后会出现什么情况?
【问题讨论】:
您可以省略版本或使用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 的搜索空间,它需要遍历以找到一组兼容的依赖项。
请投票https://github.com/flutter/flutter/issues/12627 以从flutter packages get/upgrade 获得正确的信息,当有比你的约束允许的更新的依赖版本可用时(就像pub get/upgrade 对非Flutter Dart 项目所做的那样)
【讨论】: