Развертывание приложения AngularJS в Heroku, не удалось найти подходящую версию angular-animate

Я развертываю приложение AngularJS в Heroku, но получаю эту ошибку в консоли:

remote: bower    ECONFLICT Unable to find suitable version for angular-animate
remote: 
remote:  !     Push rejected, failed to compile Node.js app
remote: 
remote: Verifying deploy....
remote: 
remote: !   Push rejected to test-app-12345

Проблема (конечно) связана с зависимостью angular-animate.

Я использую сборочный пакет Heroku angularJS "Yo Angular" и следую их 4 пошаговый процесс для успешного развертывания приложения в Heroku.

Я попытался исправить это, изменив файл bower.json, как рекомендовано в этом ответе StackOverflow, надеясь, что это решит мою проблему. Это не так.

Локально я использую grunt serve для запуска приложения, и у меня это отлично работает.

Мой bower.json выглядит так:

{
  "name": "dashboard",
  "version": "0.0.0",
  "main": "index.html",
  "ignore": [
    "**/.*",
    "node_modules",
    "bower_components"
  ],
  "dependencies": {
    "jquery": "~2.0",
    "bootstrap": "~3.1.1",
    "angular": "~1.3.15",
    "angular-ui-router": "~0.2",
    "angular-animate": "~1.3.15",
    "angular-resource": "~1.3.15",
    "angular-cookies": "~1.3.15",
    "angular-mocks": "~1.3.15",
    "angular-ui-utils": "~0.1",
    "angular-bootstrap": "~0.11.2",
    "moment": "~2.5",
    "less.js": "~1.6",
    "font-awesome": "~4.2.0",
    "form-builder": "0.1.0",
    "restangular": "~1.4.0",
    "lodash": "~2.4.1",
    "satellizer": "~0.3.2",
    "angular-xeditable": "~0.1.8",
    "fullcalendar": "~2.1.1",
    "angular-ui-calendar": "~0.8.1",
    "checklist-model": "~0.1.3"
  },
  "resolutions": {
    "font-awesome": "~4.2.0",
    "jquery": "~2.0",
    "fullcalendar": "~2.1.1",
    "angular": "~1.3.15",
    "angular-bootstrap": "~0.11.2"
  }
}

Код пока общедоступен, поэтому вот ссылка на репозиторий Github.

У кого-нибудь есть советы для меня или хорошая идея, что я делаю неправильно?

P.S. Я нашел эту информацию в отслеживании проблем Github bower, который занимается той же проблемой. Может быть полезно разобраться в этом.


person Zach Cook    schedule 09.07.2015    source источник
comment
Кажется, он не может найти подходящую версию для angular-animate из-за x в ~1.3.x. Попробуйте объявить конкретную версию, например ~1.3.15. Я думаю, что это вызовет ошибку для других версий .x. Попробуйте заменить и его.   -  person Alberto I.N.J.    schedule 09.07.2015
comment
Вы обновили всю .x версию или только angular-animate?   -  person Alberto I.N.J.    schedule 09.07.2015
comment
Просто угловая анимация, подумал я, так как это было единственное, что выдавало мне ошибку .... но я вернусь и попробую со всеми.   -  person Zach Cook    schedule 09.07.2015
comment
Да, обновил все. Все еще не работает.   -  person Zach Cook    schedule 09.07.2015
comment
@АльбертоИ.Н.Дж. в любом случае спасибо за ваше предложение! Я ценю помощь.   -  person Zach Cook    schedule 09.07.2015
comment
Это странно. Я уже сталкивался с этой проблемой раньше, и причина заключалась в том, что версии зависимостей конфликтовали друг с другом. Попробуйте изменить версию angular-mocks на версию angular.   -  person Alberto I.N.J.    schedule 09.07.2015
comment
Давайте продолжим обсуждение в чате.   -  person Zach Cook    schedule 09.07.2015
comment
Вы пытались запустить bower в своем локальном компьютере? Есть ли ошибка?   -  person Alberto I.N.J.    schedule 09.07.2015
comment
Задает ли bower какой-либо вопрос, связанный с version?   -  person Alberto I.N.J.    schedule 09.07.2015
comment
Нет, это не так... Я знаю, о чем вы говорите, это случалось со мной в прошлом, но не с этим приложением.   -  person Zach Cook    schedule 09.07.2015
comment
Ok. Я все еще расследую вашу ошибку. Я свяжусь с вами, когда получу решение.   -  person Alberto I.N.J.    schedule 09.07.2015


Ответы (1)


Эта ошибка возникает, когда два пакета ссылаются на разные версии одной и той же зависимости.

Вы можете решить эту проблему, запустив rm -rf bower_components/ ; bower install

Затем, когда будет предложено выбрать версию, добавьте к вашему ответу префикс «!» как у меня ниже. Обратите внимание, как Bower добавит раздел "resolutions".

Unable to find a suitable version for angular-animate, please choose one:
    1) angular-animate#~1.2 which resolved to 1.2.28 and is required by form-builder#0.1.0
    2) angular-animate#~1.3.15 which resolved to 1.3.17 and is required by dashboard
    3) angular-animate#~1.4.3 which resolved to 1.4.3

Prefix the choice with ! to persist it to bower.json

? Answer: !3

Вот ваш разрешенный файл bower.json.

{
  "name": "dashboard",
  "version": "0.0.0",
  "main": "index.html",
  "ignore": [
    "**/.*",
    "node_modules",
    "bower_components"
  ],
  "dependencies": {
    "jquery": "~2.0",
    "bootstrap": "~3.1.1",
    "angular": "~1.3.15",
    "angular-ui-router": "~0.2",
    "angular-animate": "~1.4.3",
    "angular-resource": "~1.3.15",
    "angular-cookies": "~1.3.15",
    "angular-mocks": "~1.3.15",
    "angular-ui-utils": "~0.1",
    "angular-bootstrap": "~0.11.2",
    "moment": "~2.5",
    "less.js": "~1.6",
    "font-awesome": "~4.2.0",
    "form-builder": "0.1.0",
    "restangular": "~1.4.0",
    "lodash": "~2.4.1",
    "satellizer": "~0.3.2",
    "angular-xeditable": "~0.1.8",
    "fullcalendar": "~2.1.1",
    "angular-ui-calendar": "~0.8.1",
    "checklist-model": "~0.1.3"
  },
  "resolutions": {
    "font-awesome": "~4.2.0",
    "jquery": "~2.0",
    "fullcalendar": "~2.1.1",
    "angular": "~1.3.15",
    "angular-bootstrap": "~0.11.2",
    "angular-animate": "~1.4.3"
  }
}
person Daniel Rasmuson    schedule 08.08.2015
comment
Идеальный. Ха-ха, все, что мне действительно нужно было сделать, это rm -rf bower_components/ ; bower install -- тогда я был готов к работе! - person Zach Cook; 08.08.2015