在Flutter中查找并更新过时的软件包(跨主要版本)

dnph8jn4  于 2022-12-30  发布在  Flutter
关注(0)|答案(8)|浏览(212)

有没有一种方法可以列出和更新pubspec.yaml中的跨主版本的软件包?(比如method used in NPM
例如,当pubspec.yaml文件具有built_value时:

dependencies:
  flutter:
    sdk: flutter
  built_value: ^5.0.0

built_value更新到版本^6.2.0时,是否有方法升级到主版本之后,以便pubspec.yaml更新到:

dependencies:
  flutter:
    sdk: flutter
  built_value: ^6.2.0

我知道我可以手动检查每个软件包的主要版本,但如果是自动的话会很有帮助。

htzpubme

htzpubme1#

在Flutter的最新beta版本(v1.17)中,现在有一个pub命令来检查和更新过时的依赖项。
要检查是否存在过时的依赖项,请运行:

$ flutter pub outdated -h
Analyze dependencies to find which ones can be upgraded.
This runs the "pub" tool in a Flutter context.

Usage: flutter pub outdated [<arguments...>]
-h, --help    Print this usage information.

Run "flutter help" to see global options.

这会给出如下输出:

$ flutter pub outdated
Dependencies                           Current              Upgradable           Resolvable           Latest
path                                   *1.6.4               *1.6.4               *1.6.4               1.7.0
permission_handler                     *4.4.0+hotfix.4      *4.4.0+hotfix.4      5.0.0+hotfix.3       5.0.0+hotfix.3

dev_dependencies
analyzer                               *0.36.4              *0.36.4              *0.36.4              0.39.7
build_runner                           *1.7.4               *1.7.4               *1.7.4               1.9.0

transitive dependencies
asn1lib                                *0.5.15              *0.5.15              *0.5.15              0.6.4
permission_handler_platform_interface  *1.0.0               *1.0.0               2.0.0                2.0.0

transitive dev_dependencies
build                                  *1.1.6               *1.1.6               *1.1.6               1.2.2
build_config                           *0.4.1+1             *0.4.1+1             *0.4.1+1             0.4.2
dart_style                             *1.2.9               *1.2.9               *1.2.9               1.3.6

1 upgradable dependency is locked (in pubspec.lock) to an older version.
To update it, use `pub upgrade`.

4  dependencies are constrained to versions that are older than a resolvable version.
To update these dependencies, edit pubspec.yaml.

要使用兼容依赖项进行更新,请运行:

flutter pub upgrade

或要更新潜在的破坏性更改,请使用

flutter pub upgrade --major-versions
ryevplcw

ryevplcw2#

Flutter 2.0发布后,您可以按照以下flutter命令行自动升级依赖项包:

1.第一个月

  1. flutter pub upgrade --major-versions
tvz2xvvm

tvz2xvvm3#

Flutter目前不提供此类功能。
可能有第三方软件包可以做到这一点,我知道的唯一一个是denhttps://pub.dartlang.org/packages/den),但这个软件包已经有一段时间没有维护了,不能用于最近的Dart或Flutter版本。
可能有帮助的是至少获得一个更新版本可用的依赖项列表。
赞成https://github.com/flutter/flutter/issues/12627
同时,可以使用www.example.com中提到的解决方法https://github.com/flutter/flutter/issues/12627#issuecomment-400037072
FLUTTER_ROOT设置为您的Flutter安装目录并运行pub upgrade。(这要求除Flutter SDK外还安装Dart SDK)

$ export FLUTTER_ROOT="/Users/my_user/flutter"

$ pub upgrade
Resolving dependencies... (16.2s)
! analyzer 0.33.0 (overridden) (0.34.2 available)
  args 1.5.1
  async 2.0.8
  boolean_selector 1.0.4
! build 1.1.0 (overridden)
  built_collection 4.1.0
! built_redux 7.5.2 (overridden)
  built_value 6.2.0
  bwu_grinder_tasks 0.2.0-dev.0
  charcode 1.1.2
  cli_util 0.1.3+2
  collection 1.14.11
  contacts_service 0.0.9 (0.1.0 available)
> convert 2.1.1 (was 2.0.2)
  crypto 2.0.6
  csslib 0.14.6
  dart_style 1.2.2
  device_info 0.2.1 (0.3.0 available)
> file 5.0.7 (was 5.0.6)
> firebase_analytics 1.1.0 (was 1.0.6)
...
93ze6v8z

93ze6v8z4#

  • 升级单个软件包
dart pub upgrade <package_name>
  • 升级所有软件包
dart pub upgrade --major-versions
u2nhd7ah

u2nhd7ah5#

有一个快速而肮脏的解决方案,它只读取pubspec.yaml文件,然后通过Web抓取检查最新版本。
https://gist.github.com/spidgorny/ed475cbbe303e1c09c0f6c9f9f57dcad
示例:

cupertino_icons: 0.1.2
location: 2.3.5
flutter_local_notifications: 0.8.4
http: 0.12.0+1
 => 0.12.0+2
haversine: 1.0.2
flutter_map: 0.1.4
 => 0.7.3
map_native: 0.0.11
url_launcher: 5.1.4
flutter_html_view: 0.5.12
flutter_html: 0.8.2
background_fetch: 0.2.0
 => 0.3.2
package_info: 0.4.0+2
 => 0.4.0+6
liquid_pull_to_refresh: 1.1.1
provider: 3.0.0
 => 3.1.0
yaml: any
google_maps_flutter: 0.5.21+7
xwbd5t1u

xwbd5t1u6#

我得到了一个设置模拟处理程序错误。我尝试了flutter clean和flutter pub升级,但错误仍然存在。我添加了pigeon:1.0.7和一个flutter酒吧升级,没有运气。

finally I tried

flutter pub upgrade --major-versions

and it moved forward my flutter dependencies and the code compiled

该命令向前移动了我的软件包版本

flutter_html: ^1.3.0 -> ^2.1.5
  rxdart: ^0.24.1 -> ^0.27.2
  master_detail_scaffold: ^1.1.1+2 -> ^2.0.0
  intl: ^0.16.0 -> ^0.17.0
lx0bsm1f

lx0bsm1f7#

您可以简单地检查依赖项的版本,即使其版本在pubspec文件中为空。在Android Studio中后藤项目的根目录,然后使用外部库展开它,您可以简单地查看依赖项的名称和版本号。

daupos2t

daupos2t8#

您可以使用flutter packages upgrade,Flutter将验证新发布版本,如果有约束通知。
请在此处查看相关文档:https://flutter.io/docs/development/tools/sdk/upgrading

    • 警告**:(摘自上述链接)

不要使用pub get或pub upgrade命令来管理Flutter应用的依赖项,而应该使用flutter packages get或flutter packages upgrade命令。如果您想手动使用pub,可以通过设置FLUTTER_ROOT环境变量直接运行它。

相关问题