【问题标题】:Why pub upgrade don't upgrade packages and just show them为什么 pub upgrade 不升级软件包而只显示它们
【发布时间】:2014-10-02 11:32:15
【问题描述】:

我有:

>pub upgrade
Resolving dependencies... (6.2s)
  analyzer 0.18.0 (9 newer versions available)
  angular 0.14.0
  args 0.10.0+2 (5 newer versions available)
  barback 0.13.0 (14 newer versions available)
  bootjack 0.6.5+2
  browser 0.10.0+2
  code_transformers 0.1.6 (5 newer versions available)
  collection 0.9.4 (1 newer version available)
  di 2.0.2 (3 newer versions available)
  dquery 0.7.0+4
  html5lib 0.10.0 (4 newer versions available)
  intl 0.11.9
  logging 0.9.1+1 (2 newer versions available)
  path 1.3.0
  perf_api 0.0.9
  petitparser 1.2.2
  route_hierarchical 0.4.22 (1 newer version available)
  shadow_dom 0.10.0
  source_maps 0.9.4 (1 newer version available)
  source_span 1.0.0
  stack_trace 0.9.3+2 (6 newer versions available)
  typed_mock 0.0.4
  utf 0.9.0+1

所以我可以看到 newer versions available 但是如何更新它们?

【问题讨论】:

    标签: dart dart-pub


    【解决方案1】:

    直接或传递依赖项具有不允许使用较新版本的版本约束。

    在 Dart 中,一个包只能导入一个版本。
    所有依赖项都需要就一个版本达成一致。

    据我所知,Java 中的包A 可以导入包B 1.0 版和包C,即使包C 在版本2.0 中导入B
    这在 Dart 中是不可能的,整个应用程序必须使用相同版本的 B

    为了找出阻止升级的原因,我通常在我的pubspec.yaml 中添加一个强制执行较新版本的约束。
    运行 pub upgrade 然后显示哪个依赖项阻止了升级。

    添加依赖约束

    dependencies:
      html5lib: '>= 0.10.0'<
    

    运行

    pub upgrade
    

    检查结果

    这通常需要多次迭代才能找出罪魁祸首。

    pub deps -s list
    

    显示所有依赖项和约束的有用概览

    您还可以将dependency_overrides 添加到您的pubspec.yaml

    dependency_overrides:
      html5lib: '>= 0.10.0'
    

    只强制执行较新的版本并忽略可能的不兼容性。
    http://pub.dartlang.org 不允许上传包含dependency_overrides 的包。)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-05-23
      • 2014-02-20
      • 2017-05-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-10-30
      • 2022-06-23
      相关资源
      最近更新 更多