如何自动升级Flutter依赖项

flvtvl50  于 2022-12-27  发布在  Flutter
关注(0)|答案(5)|浏览(334)

我的Flutter项目在版本^2.0.1上有一个依赖项flutter_dotenv,我想自动升级到新版本^2.0.2
我正在运行以下命令来升级它:

flutter pub upgrade

参考:仅升级包
要更新到pubspec. yaml文件中列出的所有依赖项的最新兼容版本,请使用upgrade命令:
flutter酒吧升级
然而,似乎什么也没有发生。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
bkhjykvo

bkhjykvo1#

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

flutter pub upgrade --major-versions

它将更新您的所有依赖项。
另请检查“如何正确添加依赖项以避免**“版本解决失败”错误**
请参阅:https://stackoverflow.com/a/67517680/13500457

qjp7pelc

qjp7pelc2#

Flutter会根据语义版本自动升级非破坏性的更改,你不会希望破坏性的更改是自动的,更新会反映在pubspec.lock中,但不会反映在pubspec.yaml中。
有几个IDE插件可以帮助您升级软件包,比在pub.dev上逐个查找要容易得多。

Android Studio

Flutter Pub Version Checker
这个插件会突出显示pubspec.yaml中任何过期的依赖项,以便您可以选择更新它们。

Visual Studio代码

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

9bfwbjaz

9bfwbjaz3#

运行pub将永远不会更改pubspec.yaml。但是,它可能会解析为与指定的“基本”版本不同的版本-前导插入符号允许pub解析为:
保证与指定版本向后兼容的所有版本的范围
检查pubspec.lock文件,您可能会看到pub已经解算为version: "2.0.2"

vql8enpb

vql8enpb4#

声明依赖关系版本的方法有两种:
1.插入符号语法-它保证向后兼容。例如:第一个月
1.传统语法-灵活性高,有多种控制选项。例如:>=1.2.3
其行为类似于具有Node.js依赖项管理的package.json
您选择的在pubspec.yaml中声明依赖项的方式将定义在pubspec.lock文件中如何定义 * 实际依赖项 *。

sxissh06

sxissh065#

对于从非常旧的版本升级到null safety版本:

//Upgrading flutter sdk
flutter upgrade
//Upgrading dart code
dart migrate
// Upgrading all pubspec.yaml package versions
flutter pub outdated --mode=null-safety

// Download all new versions of the packages
dart pub get

再次升级dart代码。在此阶段,您应该纠正所有问题(手动或使用迁移指南),否则将显示“The migration tool didn't start,due to analysis errors”(由于分析错误,迁移工具未启动)。

// See list of available fixes
dart fix --dry-run

// Fix all issues automatically
dart fix --apply

有关详细信息,请参阅this article
检查扑动迁移指南here

相关问题