如何自动升级 Flutter 依赖

How to automatically upgrade Flutter dependencies

我的 Flutter 项目在 ^2.0.1 版本有一个依赖项 flutter_dotenv,我想自动升级到新版本 ^2.0.2

我是运行下面的命令来升级它:

flutter pub upgrade

参考:Upgrading packages only

To update to the latest compatible versions of all the dependencies listed in the pubspec.yaml file, use the upgrade command:

flutter pub upgrade

然而似乎什么也没有发生。 pubspec.yaml 没有变化,控制台输出没有提到新版本(这就足够了)。

我的 pubspec.yaml 看起来像这样:

environment:
  sdk: ">=2.1.0 <3.0.0"

dependencies:
  flutter:
    sdk: flutter
  flutter_dotenv: ^2.0.1
  cupertino_icons: ^0.1.2

dev_dependencies:
  flutter_test:
    sdk: flutter

flutter:
  uses-material-design: true

运行 pub 永远不会改变 pubspec.yaml。但是,它可能会解析为与指定的 'base' 版本不同的版本 - 前导 caret 允许发布者解析为:

the range of all versions guaranteed to be backwards compatible with the specified version

签入 pubspec.lock 文件,您可能会看到 pub 已经解决了 version: "2.0.2"

Flutter 在 的基础上自动升级非破坏性变更。您不希望自动进行重大更改。更新反映在 pubspec.lock,而不是 pubspec.yaml

有几个 IDE 插件可以帮助您更轻松地升级软件包,而不是在 pub.dev.

上一个一个地查找它们

Android工作室

Flutter Pub Version Checker

此插件会突出显示 pubspec.yaml 您拥有的任何已过时的依赖项,以便您可以根据需要选择更新它们。

Visual Studio代码

Pubspec Assist

这个插件使得添加或更新依赖项变得非常简单,而无需 pub.dev,但您仍然需要一次检查一个。

声明依赖版本有两种方式:

  1. Caret syntax - 它保证向后兼容性。示例:^1.3.0
  2. Traditional syntax - 极大的灵活性,多种选择供您控制。示例:>=1.2.3

此行为类似于 package.json,具有 Node.js 依赖管理。

您在 pubspec.yaml 中选择的声明依赖关系的方式将定义 实际依赖关系 将如何在 pubspec.lock 文件中定义。

以上方法有效,但您可以使用此命令:

flutter pub upgrade --major-versions

它将更新您所有的依赖项。

同时检查“如何正确添加依赖项以避免”“版本解析失败”错误

参考这个:

我希望它清除一切,编码愉快!