2014-10-02 45 views
2

我有:为什么酒馆升级不升级包,只是告诉他们

>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但因此如何对其进行更新?

回答

2

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

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

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

要找出什么阻止升级,我通常会在我的pubspec.yaml中添加一个约束来强制更新的版本。运行pub upgrade然后显示哪个依赖性阻止升级。

添加依赖约束

dependencies: 
    html5lib: '>= 0.10.0'< 

运行

pub upgrade 

检查结果

这通常需要多次反复,直到罪魁祸首可以计算出。

pub deps -s list 

显示所有的依赖和约束

的有用的概述您还可以添加一个dependency_overridespubspec.yaml

dependency_overrides: 
    html5lib: '>= 0.10.0' 

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