Почему pub upgrade не обновляет пакеты, а просто показывает их

У меня есть:

>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 но как их обновить?


person cnd    schedule 02.10.2014    source источник


Ответы (1)


Прямая или транзитивная зависимость имеет ограничение версии, которое не позволяет использовать более новую версию.

В Dart пакет можно импортировать только в одной версии.
Все зависимости должны соответствовать одной версии.

Насколько мне известно, в Java пакет A может импортировать пакет B версии 1.0 и пакет C, даже если пакет C импортирует 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.)

person Günter Zöchbauer    schedule 02.10.2014