我的Flutter项目在版本flutter_dotenv
上有一个依赖项^2.0.1
,我想自动升级到新版本^2.0.2
。
我正在运行以下命令对其进行升级:
flutter pub upgrade
要更新到所有依赖项的最新兼容版本 列在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
答案 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上逐个查找包来帮助您轻松地升级包。
此插件会突出显示pubspec.yaml
中所有过时的依赖项,以便您可以选择更新它们。
此插件使添加或更新依赖项变得非常简单,而无需转到pub.dev,但是您仍然必须一次检查一次。
答案 2 :(得分:1)
有两种声明依赖版本的方法:
^1.3.0
>=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