Dart:“dart pub outdated”输出中的“Upgradable”和“Resolvable”列有什么区别?

wal*_*air 3 dart flutter

“dart pub outdated”输出中的“Upgradable”和“Resolvable”列有什么区别?

以下是可以升级到最新版本的软件包示例。可升级、可解析和最新全部匹配:

url_launcher                            *6.0.11   6.0.12      6.0.12      6.0.12   
Run Code Online (Sandbox Code Playgroud)

下面是一个包的示例,该包已经是最高可解析版本,但无法升级到绝对最新版本。据推测,另一个依赖关系是将可解析性限制为最新的。

rxdart                                  *0.26.0   *0.26.0     *0.26.0     0.27.2   
Run Code Online (Sandbox Code Playgroud)

下面是一个无法升级到更高版本但具有更高版本的可解析版本的包的示例。这是什么意思?这与上面中间的情况有什么不同?

provider                                 *5.0.0        *5.0.0       6.0.1        6.0.1
Run Code Online (Sandbox Code Playgroud)

wal*_*air 5

除了其他非常有用的发布想法之外,我还了解到以下有用的细节:

\n

可升级是指您的直接 pubspec 允许的最高版本,它考虑了 sdk 版本和单个软件包版本(无论是升级到次要版本还是主要版本)。当可升级受到限制时,可能是您的 sdk 版本阻碍了升级。就我而言,我使用的是 sdk 2.12,但某些软件包现在需要 2.14(2021 年 9 月)。

\n

来自文档:

\n
\n

pubspec.yaml 文件允许的最新版本。这是 dart pub Upgrade 解析到的版本。如果当前列中的值为 -,则该值为 -。

\n
\n

可解析是指除了直接的 pubspec 约束之外,所有其他包的依赖项允许的最高版本。当可解析的资源有限时,通常会有一个包阻碍一切,或者一个主要版本阻碍一切。

\n

来自文档:

\n
\n

与所有其他依赖项结合使用时可以解析的最新版本。如果 pubspec.yaml 中的所有版本约束都是无界的,则此版本对应于 dart pub Upgrade 为您提供的版本。值 - 表示不需要该包\xe2\x80\x99。

\n
\n