在 flutter 中我有点脑震荡添加包。
在 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 项目所做的那样)
https://stackoverflow.com/questions/53742443/