Bezdepbonusu7Программирование: статьи и ответы

Вопрос

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

Автор вопроса: Zach CookОтветов: 1

Я развертываю приложение 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, который занимается той же проблемой. Может быть полезно разобраться в этом.

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

angularjsherokubower

Ответы

Ответ 1 · рейтинг 5 · Daniel Rasmuson

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

Вы можете решить эту проблему, запустив 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"
  }
}

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы