在我的Flatter项目的pubspec.yaml文件中,在一些依赖项的版本号之前有一个插入符号(^).

dependencies:
  flutter:
    sdk: flutter
  cupertino_icons: ^0.1.2
  english_words: ^3.1.5

它的目的是什么?什么意思?

Notes

推荐答案

插入符号(^)用于省道中的pub dependencies,以指示允许的版本号范围.具体来说,从指定版本到下一个non-breaking版本(但不包括)的任何版本都可以.

  • 所以^3.1.5等于'>=3.1.5 <4.0.0'
  • ^1.2.3'>=1.2.3 <2.0.0'是一样的

这是较长形式的缩写.

^是说,我想自动使用Pub的最新软件包,只要更新不会 destruct 我的应用程序中的任何内容.

注意事项

1.0.0以下版本的说明

起初我以为

  • ^0.1.2等于'>=0.1.2 <1.0.0' 102

然而,这是对Semantic Versioning的错误理解.当主版本号为0(如0.1.20)时,意味着API不稳定,即使是次要的版本号更改(如0.1.21)也可能表示突破性的更改.

Semantic Versioning条规定:

主要版本0(0.y.z)用于初始开发.任何事情都可能在任何时候改变.不应将公共API视为稳定.

而且

我应该如何处理0.y.z初始开发中的修订 阶段?

最简单的做法是从以下位置开始您的初始开发版本 0.1.0,然后 for each 后续版本递增次要版本.

因此,以下是更正后的形式:

  • ^0.1.2等于'>=0.1.2 <0.2.0'

Thank you to 100 for pointing out my error.

另见

Flutter相关问答推荐

从底部开始固定,然后使其可拖曳Flutter

我有一个问题:类型';()=>;Null';不是类型转换中类型';(Int)=>;void';的子类型

摆动如何更改弹出菜单项高亮显示 colored颜色 半径

无法在我的Flutter 应用程序中使用GoRouter测试导航

BoxConstraints强制使用无限宽度(列中的Listview)

未处理的异常:第1行第5列出现错误:无效的媒体类型:应为/&;.从API获取数据时在Flutter中

将自定义容器附加到屏幕底部

如何在flutter中实现这样的底部导航栏?

'type' Icon '不是类型' IconData '的子类型

在 flutter 中获取最喜欢的文档

如何使用 riverpod_annotation 创建非自动处置提供程序?

Cloud firestore:如何使用 map 对象创建和更新嵌套数组

如何在 flutter 中同时使用 ButtonStyle() 和 ElevatedButton.styleFrom() ?

Flutter HLS .m3u8 视频无法实时播放

在 CircleAvatar 中放置芯片

Getx Flutter 在更新值时抛出空错误

我想在数组中添加项目

有没有办法帮助我修复类型 null 不是 Map 类型的子类型?

在自动完成中 Select 值后保持键盘焦点

带有 Dismissible 和 Provider (NotifyListener) 的笨拙动画