我有:
>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
,但是如何更新它们呢?
答案 0 :(得分:2)
直接或传递依赖项具有不允许使用较新版本的版本约束。
在Dart中,只能在一个版本中导入包 所有依赖关系需要就一个版本达成一致。
据我所知,在Java中,即使包A
在版本中导入B
,包C
也可以导入包C
版本1.0和包B
2.0。
这在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
的包。)