在Flutter中,依赖项必须指定版本号吗?

Sla*_*abo 3 dart flutter

通常,您必须添加类似

dependencies:
  camera: "^0.2.0"
Run Code Online (Sandbox Code Playgroud)

到pubspec.yaml文件。如果我不包含版本号会怎样?这是一件小事,但是通常,我找到一段代码并想要对其进行测试。在顶部,我看到类似>>

import 'package:camera/camera.dart';
Run Code Online (Sandbox Code Playgroud)

我是否必须转到软件包的主页以找到版本号?

Sla*_*abo 13

根据https://www.dartlang.org/tools/pub/dependencies

根据您要提供的数据,您可以通过两种方式指定依赖项。在最短的方法是只指定一个名称:

dependencies:
  transmogrify:
Run Code Online (Sandbox Code Playgroud)

这会创建对 transmogrify 的依赖,它允许任何版本, 并使用默认源(即 pub.dartlang.org)进行查找。要将依赖限制为一系列版本,您可以提供版本约束:

依赖:幻化:^1.0.0

这会使用默认源创建对 transmogrify 的依赖,并允许从 1.0.0 到 2.0.0(但不包括 2.0.0)的任何版本。有关版本约束语法的详细信息,请参阅版本约束和 Caret 语法。

我想我的问题的真正答案通常是,最好指定一个主要版本号比率,例如: ^1.0.0 == 1.0.0 < 2.0.0。这就是说该程序可以运行并经过测试,并且只要没有重大更改,它将继续使用此库依赖项。


Gün*_*uer 8

您可以使用 any

dependencies:
  camera: any
Run Code Online (Sandbox Code Playgroud)

严格的约束使packages get/ packages upgrade搜索匹配的版本更加容易,因为它减少了解决方案的空间,但是对于简单的示例,通常并不重要。

pub最近有一种改进的求解器,any它解决的问题比以前pub经常超时的问题要少得多any

  • 注意:您也可以使用 git 链接。 (3认同)