【问题标题】:Dependency problems in DartlangDartlang 中的依赖问题
【发布时间】:2016-04-20 07:35:06
【问题描述】:

当我执行 'pub get' 时,它给了我以下错误:

包 uri 没有匹配 >=0.9.3 =0.9.3

dependencies:
  angular2: 2.0.0-beta.1
  browser: ^0.10.0
  dart_to_js_script_rewriter: '^0.1.0'
  rpc: '^0.5.5'
  mongo_dart: '^0.2.4'
  http: '>=0.11.1 <0.12.0'
  crypto: '>=0.9.0 <0.10.0'
  _discoveryapis_commons: '>=0.1.0 <0.2.0'
  http_server: '^0.9.5+1'

uri 有版本 0.10.0 和版本 0.11.0 https://pub.dartlang.org/packages/uri

如何解决这种依赖冲突?

【问题讨论】:

    标签: dependencies dart angular


    【解决方案1】:

    消息中提到的包名通常具有误导性。它实际上告诉的是pub 某处放弃了寻找兼容集的尝试。

    调试工具是

    容易忘记的是 SDK 约束,它可能会限制软件包版本。

    首先注释掉所有的依赖,一个一个添加,直到可以复现。 尝试找出哪些包组合会阻止解析(通常只有 2 或 3 个)。然后调查他们的 SDK 版本和依赖约束。

    通常它与快速发展的分析器包有关,并且经常引入重大更改,其中依赖项需要更新版本,而另一个依赖项限制旧版本。

    它当然可以是任何其他包。也许有一段时间没有更新了。

    添加

    dependency_overrides:
      uri: ^0.11.0
    

    到 pubspec.yaml 修复它,因此带有 uri 约束的 rpc 包确实似乎是罪魁祸首。 请创建一个错误报告以获取与uri 兼容的rpc 0.11.0 或创建一个拉取请求。

    【讨论】:

    • 我最近在pubviz 上也遇到了这个错误,但没有进行调查。请问可以报吗?问题可能是rpc 不允许最新的uri 版本0.11.0。我还没有找到一个包是否真的需要&gt;=0.11.0
    • pubviz 的错误似乎已在最新的开发版本中修复。
    • pubviz 的错误仍然存​​在 ("NoSuchMethodError: The setter 'isPrimary=' was called on null.") ,至少当 pub 无法获取依赖项时(这正是我需要它的时候!)。此外,pub deps 报告“自从 pubspec.lock 文件生成后,pubspec.yaml 文件已更改,请再次运行“pub get”。”,这在 pub get 无限期挂起时无济于事。
    • 您收到pub global activate pubviz 的此错误?最后一招通常是逐个添加依赖,直到找不到罪魁祸首。
    • @Guenther:不,activate 效果很好。运行pubviz open 时出现错误。顺便说一句,我[找到了罪魁祸首][stackoverflow.com/questions/44895831/…,但这对我没有多大帮助。
    猜你喜欢
    • 2012-05-23
    • 2014-01-12
    • 1970-01-01
    • 2021-10-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-12
    • 2020-08-13
    相关资源
    最近更新 更多