Bower не может найти пакет и не может установить новые пакеты

Поэтому я установил через bower - jQuery UI Sortable. Папка пакета была помещена прямо в папку с моими активами, как и ожидалось. Затем я хотел установить другой пакет (например: noty.js с bower install --save noty) и получаю это:

bower noty#*                not-cached https://github.com/needim/noty.git#*
bower noty#*                   resolve https://github.com/needim/noty.git#*
bower fullcalendar#*            cached https://github.com/fullcalendar/fullcalendar.git#3.4.0
bower fullcalendar#*          validate 3.4.0 against https://github.com/fullcalendar/fullcalendar.git#*
bower noty#*                  download https://github.com/needim/noty/archive/v3.1.1.tar.gz
bower noty#*                   extract archive.tar.gz
bower noty#*                  resolved https://github.com/needim/noty.git#3.1.1
bower                        ENOTFOUND Package jQuery UI Sortable=jquery-ui-sortable not found

Примечание. Я также пытался установить fullcalendar.

Несмотря на то, что он говорит, что скачал пакет и извлек archive.tar.gz, этого пакета нигде нет в папке моего проекта. jQuery UI Sortable все еще там. Я даже использую его.

bower.json остается нетронутым. Если я запускаю bower install --save noty, он просто говорит:

bower noty#*                    cached https://github.com/needim/noty.git#3.1.1
bower noty#*                  validate 3.1.1 against https://github.com/needim/noty.git#*
bower                        ENOTFOUND Package jQuery UI Sortable=jquery-ui-sortable not found

У меня есть .bowerrc, который указывает на resources/assets/bower (потому что это проект Laravel). Итак, как мне это исправить?


person Ivanka Todorova    schedule 19.07.2017    source источник


Ответы (1)


Причина этой ошибки в том, что Bower использует name для построения структуры каталогов и определения фактического имени пакета. Пакет jQuery UI Sortable определяет имя, используя заглавные буквы и пробелы внутри файла bower.json следующим образом:

{
  "name": "jQuery UI Sortable",
  "version": "1.0.0",
  ...

что, очевидно, не очень хорошая идея, чтобы иметь заглавные буквы и пробелы в имени каталога пакета:

JQuery UI Сортировка

Итак, нам нужно изменить имя с jQuery UI Sortable на jquery-ui-sortable и избавиться от пробелов и заглавных букв. Для этого мы должны определить имя, используя <package_installed_name>=<package_list_name>, что в нашем случае будет:

bower install --save jquery-ui-sortable=jquery-ui-sortable

После этого просто установите noty, и он должен успешно установиться:

bower install noty

Установить Bower Noty

jQuery UI Sortable и Noty вместе

Не забудьте удалить каталог jQuery UI Sortable внутри каталога пакетов Bower, прежде чем пытаться установить jquery-ui-sortable с правильным именем.

person Christos Lytras    schedule 26.07.2017