ошибка паба при установке http

Пытаюсь установить http-пакет, последняя версия которого – 0.11.3+13, и нашел здесь

Когда я помещаю его в свой pubspec.yaml в своем проекте, я получаю следующее:

У пакета http нет версий, соответствующих >=0.11.3+13 ‹0.12.0 производных от: - observables зависит от версии ^0.11.3+13

Вот мой pubspec.yaml (обратите внимание, что я временно закомментировал «angular2» и «rxdart».

environment:
  sdk: '>=1.20.1 <2.0.0'

dependencies:
  # angular2: ^2.2.0
  # rxdart: ^0.10.2
  http: ^0.11.3+13

dev_dependencies:
  browser: ^0.10.0
  dart_to_js_script_rewriter: ^1.0.1

transformers:
- angular2:
    platform_directives:
    - 'package:angular2/common.dart#COMMON_DIRECTIVES'
    platform_pipes:
    - 'package:angular2/common.dart#COMMON_PIPES'
    entry_points: web/main.dart
- dart_to_js_script_rewriter

Мне удалось скачать пакет (эту версию). Вот его pubspec.yaml:

name: http
version: 0.11.3+13
author: "Dart Team <[email protected]>"
homepage: https://github.com/dart-lang/http
description: A composable, Future-based API for making HTTP requests.
dependencies:
  async: "^1.10.0"
  collection: "^1.5.0"
  http_parser: ">=0.0.1 <4.0.0"
  path: ">=0.9.0 <2.0.0"
  stack_trace: ">=0.9.1 <2.0.0"
dev_dependencies:
  unittest: ">=0.9.0 <0.12.0"
environment:
  sdk: ">=1.23.0-dev.0.0 <2.0.0"

И вот вывод pub get со списком всех пакетов и версий, которые он может установить (путем удаления http-пакета):

  analyzer 0.29.10 (0.30.0-alpha.2 available)
  angular2 2.2.0 (3.0.0-beta+1 available)
  args 0.13.7
  async 1.13.2
  barback 0.15.2+10
  browser 0.10.0+2
  build 0.5.0 (0.8.0 available)
  charcode 1.1.1
  cli_util 0.0.1+2
  code_transformers 0.5.1
  collection 1.14.0
  convert 2.0.1
  crypto 2.0.1
  csslib 0.13.5
  dart_style 0.2.16 (1.0.3 available)
  dart_to_js_script_rewriter 1.0.2
  fixnum 0.10.5
  glob 1.1.3
  html 0.13.1
  http_parser 3.1.1
  intl 0.14.0 (0.15.0 available)
  isolate 1.0.0
  js 0.6.1
  logging 0.11.3+1
  meta 1.0.5
  mime 0.9.3
  observable 0.14.0+1 (0.20.4+1 available)
  package_config 1.0.0
  path 1.4.1
  plugin 0.2.0
  pool 1.3.0
  protobuf 0.5.4
  rxdart 0.10.2
  shelf 0.6.7+2


  shelf_static 0.2.4
  source_maps 0.10.4
  source_span 1.3.1
  stack_trace 1.7.3
  stream_channel 1.6.1
  string_scanner 1.0.1
  typed_data 1.1.3
  utf 0.9.0+3
  watcher 0.9.7+3
  when 0.2.0
  which 0.1.3
  yaml 2.1.12

Два наблюдения:

  1. Когда я пытаюсь «обновить паб», ничего не меняется, хотя вывод «получить» показывает, что доступны более поздние версии.

  2. Глядя на зависимости в пакете http, кажется, что все они ссылаются на действительные версии в выводе «get».

Итак, если observables зависит от версии ^0.11.3+13, и это версия, которую я пытаюсь установить, и ее определенно можно найти на github, почему она жалуется?

Я просматривал отчеты об ошибках, и пришел к выводу, что это проблема зависимости от версии, которую, предположительно, легко исправить. Но я не вижу здесь никаких конфликтов или зависимостей вне версии. И я понятия не имею, как найти и исправить, если это так.

Есть ли способ вручную установить пакет, или это только сломает ситуацию?


person rickb    schedule 20.04.2017    source источник


Ответы (1)


Сообщение об ошибке вводит в заблуждение. Это просто означает, что pub не может найти соответствующий набор зависимостей.

В вашем случае я почти уверен, что это ограничение SDK в версии http, которую вы используете.

https://github.com/dart-lang/http/blob/0.11.3%2B13/pubspec.yaml

environment:
  sdk: ">=1.23.0-dev.0.0 <2.0.0"
person Günter Zöchbauer    schedule 20.04.2017
comment
Как это? Спецификация окружения/sdk пакета точно такая же, как и в моем проекте: Их: › sdk: ›=1.23.0-dev.0.0 ‹2.0.0 Мой: › sdk: '›=1.20.1 ‹2.0.0 - person rickb; 20.04.2017
comment
Что ж, получилось не очень... во всяком случае, я использую dart 1.22.1. Как узнать версию SDK? - person rickb; 20.04.2017
comment
Ваш поддерживает >=1.20.1, http требует >=1.23.0-dev.0.0. Не знаю, что делать с вашими комментариями. Я думаю, вам нужна более новая версия Dart или разрешены более старые версии http. - person Günter Zöchbauer; 20.04.2017
comment
Хорошо, если он поддерживает ›=1.20.1 (и ‹2.0.0), 1.23 попадает в этот диапазон, верно? Итак, совпадает ли моя версия SDK с возвращаемым значением 'dart --version' (то есть 1.22.1) (я спрашиваю об этом, потому что во многих средах разработки инструменты и SDK не обязательно имеют одну и ту же версию)? - person rickb; 20.04.2017
comment
Глядя на сайт загрузок, похоже, что 1.23 — это версия для разработчиков, а 1.22 — это стабильная версия. Я использую brew для установки на Mac, который загружает стабильную версию. Я думаю, мне нужно выдернуть это и попробовать версию для разработчиков... - person rickb; 20.04.2017
comment
Ваша версия 1.22.1 не входит в диапазон, требуемый http. Да dart --version печатает версию вашего Dart SDK. Инструменты, поставляемые с SDK, могут иметь свои собственные версии, но, конечно же, они настроены для работы с этой версией. - person Günter Zöchbauer; 20.04.2017
comment
1.23.0-dev.0.0 определенно является версией dev, как говорит -dev в версии. - person Günter Zöchbauer; 20.04.2017