#angularjs #bower
#angularjs #бауэр
Вопрос:
Например, я пытаюсь установить пакет bower install restangular --save
Затем Бауэр просит меня выбрать версию Angular:
> Unable to find a suitable version for angular, please choose one:
> 1) angular#1.2.6 which resolved to 1.2.6 and has ang-changeorg, angular-cookies#1.2.6, angular-mocks#1.2.6, angular-resource#1.2.6,
> angular-sanitize#1.2.6, angular-scenario#1.2.6 as dependants
> 2) angular#1.2.17-build.226 sha.b6388b3 which resolved to 1.2.17-build.226 sha.b6388b3 and has angular-animate#1.2.17-build.226 sha.b6388b3 as dependants
> 3) angular#* which resolved to 1.2.18 and has restangular#1.4.0 as dependants
> 4) angular#~1.2.0 which resolved to 1.2.19-build.258 sha.ea653e4 and has angularfire#0.7.1 as dependants
> 5) angular#>= 1.0.8 which resolved to 1.3.0-build.2845 sha.e57ad6a and has angular-ui-router#0.2.10 as dependants
>
> Prefix the choice with ! to persist it to bower.json
В этих опциях ang-changeorg
есть еще один проект, над которым я работал локально, не имеющий никакого отношения к моему текущему рабочему каталогу.
Мой bower.json
для текущего проекта выглядит так:
{
"name": "ang-changeorg",
"version": "0.0.0",
"appPath": "public",
"dependencies": {
"angular": "1.2.6",
"json3": "~3.2.6",
"es5-shim": "~2.1.0",
"jquery": "~1.10.2",
"bootstrap": "~3.0.3",
"angular-resource": "1.2.6",
"angular-cookies": "1.2.6",
"angular-sanitize": "1.2.6",
"firebase": "~1.0.11",
"angularfire": "~0.7.1",
"spin.js": "~2.0.0",
"angular-ui-router": "~0.2.10",
"angular-animate": "~1.2.16",
"ng-file-upload": "~1.4.0"
},
"devDependencies": {
"angular-mocks": "1.2.6",
"angular-scenario": "1.2.6"
},
"resolutions": {
"angular": "1.2.6"
}
}
bower cache clean
это не удалось решить.
Почему список bower ang-changeorg
является зависимым? Ясность в отношении того, как работают эти зависимые версии angularjs, была бы потрясающей.
Комментарии:
1. Я давно не использовал bower, но похоже, что ваш текущий проект может находиться в каталоге под вашим ang-chageorg. Таким образом, предполагается, что верхний кэш проекта — это тот, из которого он должен копировать. Вы можете проверить это, переименовав все ваши файлы bower.json в bower.json.old, затем повторите попытку.
2. Могу ли я попросить вас писать свои заголовки в стандартном падеже предложений с необходимыми заглавными буквами для названий вещей? Это может показаться мелочью, но почти все ваши заголовки написаны строчными буквами, и это добавляет усилий при редактировании, когда кто-то улучшает ваши сообщения.
Ответ №1:
Это потому, что в вашем bower.json название вашего проекта — ang-changeorg
{
"name": "ang-changeorg",
"version":
И все зависимости в этом файле
"dependencies": {
"angular": "1.2.6",
"json3": "~3.2.6",
"es5-shim": "~2.1.0",
"jquery": "~1.10.2",
…
зависят ли от них «name»: «ang-changeorg». Поэтому ang-changeorg зависит от angular #1.2.6, потому что версия 1.2.6 angular указана в вашем файле bower:
"dependencies": {
"angular": "1.2.6",
Комментарии:
1. я не видел, что использовал неправильное название проекта! Спасибо, что заметили
Ответ №2:
Каждый пакет, указанный в вашем bower.json
файле, имеет свой собственный bower.json
файл, в котором указан другой набор зависимостей.
Итак, когда он говорит, что ang-changeorg
имеет angular#1.2.6
в качестве зависимого, это потому ang-changeorg
, что пакет angular#1.2.6
указан в его bower.json
файле.
Ответ №3:
Рассмотрите возможность обновления до последней версии Angular 1.2.18 во всех ваших вызовах Bower, у вас есть некоторые смешанные зависимости, и, скорее всего, Restangular предпочтет последнюю или, по крайней мере, соответствующую последней версии («angular-animate»: «~ 1.2.16»).
Я не думаю, что вы увидите какие-либо критические изменения.