Почему Бауэр говорит, что Angular зависит от случайных вещей?

#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»).
Я не думаю, что вы увидите какие-либо критические изменения.