在 Flutter 中,Dependencies 必须指定版本号?
Posted
技术标签:
【中文标题】在 Flutter 中,Dependencies 必须指定版本号?【英文标题】:In Flutter, Dependencies must specify version number? 【发布时间】:2018-11-05 02:38:48 【问题描述】:通常,您必须添加类似
的内容dependencies:
camera: "^0.2.0"
到 pubspec.yaml 文件。如果我不包含版本号会怎样?这是一件小事,但通常,我会找到一段代码并想对其进行测试。在顶部,我看到类似 >>
的内容import 'package:camera/camera.dart';
我必须到包的主页才能找到版本号吗?
【问题讨论】:
【参考方案1】:您可以使用any
dependencies:
camera: any
具有更严格的约束使packages get
/packages upgrade
更容易搜索匹配的版本,因为它减少了解决方案空间,但对于简单的示例,这通常无关紧要。
pub
最近得到了一个改进的求解器,这使得 any
的问题比以前少得多,在使用 any
时,pub
通常只是超时。
【讨论】:
注意:你也可以使用git链接。 感谢@Günter Zöchbauer【参考方案2】:根据https://www.dartlang.org/tools/pub/dependencies
根据你要提供什么数据,可以指定依赖 有两种方式。 最短的方法是指定一个名称:
dependencies:
transmogrify:
这会创建对 允许任何版本的 transmogrify 的依赖, 并使用默认源 pub.dartlang.org 进行查找。 要将依赖关系限制为一系列版本,您可以提供 版本约束:
依赖: 幻化:^1.0.0
这会使用默认源创建对 transmogrify 的依赖,并且 允许从 1.0.0 到 2.0.0 的任何版本(但不包括 2.0.0)。 有关版本的详细信息,请参阅版本约束和插入符号语法 约束语法。
我想我的问题的真正答案通常是,最好指定主要版本号比率例如:^1.0.0 == 1.0.0 。这就是说这个程序可以工作并经过测试,只要没有重大变化,就会继续使用这个库依赖。
【讨论】:
这是不是意味着,dependencies: transmogrify: 会使用这个包的最新版本? @AliAzad 是的,transmogrify:
将使用最新版本。【参考方案3】:
使用traditional syntax
的版本约束是以下一系列:
任何
字符串 any 允许任何版本。这等效于空版本约束,但更明确。 虽然any
是允许的,但我们不建议这样做。
1.2.3
一个具体的版本号将依赖项固定为仅允许该确切版本。尽可能避免使用它,因为它可能会导致用户的版本锁定,并使他们难以将您的包与其他依赖它的包一起使用。
>=1.2.3
允许给定版本或任何更高版本。您通常会使用它。
>1.2.3
允许任何大于指定版本的版本,但不允许该版本本身。
允许任何低于或等于指定版本的版本。您通常不会使用它。
允许低于指定版本的任何版本,但不允许该版本本身。这是您通常使用的,因为它可以让您指定您知道不适用于您的包的更高版本(因为它是第一个引入一些重大更改的版本)。
您可以根据需要指定版本部分,并且它们的范围相交。例如,'>=1.2.3 ' 允许从 1.2.3 到 2.0.0 的任何版本,不包括 2.0.0 本身。表达此范围的更简单方法是使用插入符号语法或 ^1.2.3。
注意:如果 > 字符在版本约束中,请务必引用约束字符串,因此该字符不会被解释为 YAML 语法。例如,永远不要使用 >=1.2.3 ;改为使用 '>=1.2.3 ' 或 ^1.2.3。
【讨论】:
以上是关于在 Flutter 中,Dependencies 必须指定版本号?的主要内容,如果未能解决你的问题,请参考以下文章
Flutter Error: Cannot run with sound null safety, because the following dependencies don‘t support
Flutter 初始化 gradle 和 Resolving dependencies 需要很长时间
Flutter Error: Cannot run with sound null safety, because the following dependencies don‘t support
Flutter Error: Cannot run with sound null safety, because the following dependencies don‘t support
Flutter Error: Cannot run with sound null safety, because the following dependencies don‘t support(代