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

在 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://www.dartlang.org/tools/pub/versioning
  • What does plus one (+1) mean in dart's dependency versioning

https://stackoverflow.com/questions/53742443/

相关文章:

text - 如果文本溢出,则替换文本

android - 在 Flutter 的登录屏幕中显示循环进度对话框,如何在 Flutter 中实

flutter - 使用 FutureBuilder 时重新加载数据

http - flutter http header

firebase - 如何在 Flutter 中用 Column 或 ListView 类包装 St

flutter - Flutter 中的 initState 和 super.initState 是

dart - Flutter:主题未应用于文本小部件

visual-studio-code - 带有 VSCode 的 Flutter 显示未安装,即使已

android - 错误 : The class 'SingleTickerProviderStat

firebase - flutter firestore,在数组中添加新对象