如何自动升级Flutter依赖项

时间:2019-09-03 01:38:18

标签: flutter dart-pub

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

我正在运行以下命令对其进行升级:

flutter pub upgrade

参考:Upgrading packages only

  

要更新到所有依赖项的最新兼容版本   列在pubspec.yaml文件中,请使用upgrade命令:

     

flutter pub升级

但是似乎什么也没发生。 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

5 个答案:

答案 0 :(得分:19)

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

flutter pub upgrade --major-versions

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

还要检查“如何正确添加依赖项以避免“版本解决失败”错误

请参考: https://stackoverflow.com/a/67517680/13500457

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

答案 1 :(得分:5)

Flutter会根据semantic versioning自动升级不中断的更改。您不希望中断更改是自动的。更新反映在pubspec.lock中,而不反映在pubspec.yaml中。

有几个IDE插件,可以比在pub.dev上逐个查找包来帮助您轻松地升级包。

Android Studio

Flutter Pub Version Checker

此插件会突出显示pubspec.yaml中所有过时的依赖项,以便您可以选择更新它们。

Visual Studio代码

Pubspec Assist

此插件使添加或更新依赖项变得非常简单,而无需转到pub.dev,但是您仍然必须一次检查一次。

答案 2 :(得分:1)

有两种声明依赖版本的方法:

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

该行为类似于使用Node.js依赖项管理的package.json

您在pubspec.yaml中声明依赖项的方式将定义如何在pubspec.lock文件中定义实际依赖项

答案 3 :(得分:0)

运行pub永远不会更改pubspec.yaml。但是,它可能会解决与指定的“基本”版本不同的版本-前导caret允许发布商解决:

  

保证与指定版本向后兼容的所有版本范围

签入pubspec.lock文件,您很可能会发现客栈已经解决了version: "2.0.2"

答案 4 :(得分:0)

我认为最适合我的命令如下。它也解决了版本冲突。

dart pub upgrade --null-safety