Dartlang 中的依赖问题

Dependency problems in Dartlang

当我执行 'pub get' 时,出现以下错误:

包 uri 没有匹配 >=0.9.3 <0.11.0 的版本来自: - rpc 0.5.5 取决于版本 >=0.9.3 <0.11.0

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

我该如何解决这个依赖冲突?

邮件中提到的软件包名称经常具有误导性。它实际上告诉我们 pub 某个地方放弃了寻找兼容集的尝试。

调试工具是

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

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

通常它与分析器包有关,该包正在快速移动并且经常引入重大更改,其中依赖性需要较新的版本和另一个对旧版本的依赖性限制。

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

添加

dependency_overrides:
  uri: ^0.11.0

为了 pubspec.yaml 修复它,因此带有 uri 约束的 rpc 包似乎确实是罪魁祸首。 请创建一个错误报告,使 rpcuri 0.11.0 兼容,或者创建一个请求请求。