Как изменить стандартную папку компонентов Bower?

475

Я делаю новый проект, который использует Bower из Twitter. Я создал component.jsonдля поддержания всей моей зависимости, как jquery. Затем я запускаю, bower installкоторый устанавливает все в папку с именем components. Но мне нужно установить компоненты в другую папку, например public/components.

Я попытался редактировать мои компоненты.json в:

{
  "name": "test",
  "version": "1.0.0",
  "directory": "public/",
  "dependencies": {
    "jquery": "*"
  }
}

или:

{
  "name": "test",
  "version": "1.0.0",
  "componentsDirectory": "public/",
  "dependencies": {
    "jquery": "*"
  }
}

как показано в https://github.com/twitter/bower/pull/94, но это не работает.

Адам Рамадан
источник

Ответы:

930

Создайте файл конфигурации Bower.bowerrc в корневом каталоге проекта (в отличие от вашего домашнего каталога) с содержимым:

{
  "directory" : "public/components"
}

Беги bower installснова.

Адам Рамадан
источник
4
Я изменяю журнал, я могу только видеть, The value of the json property from .bowerrc is no longer usedи я думаю, что все в порядке со "directory"свойством. Правильно? github.com/bower/bower/blob/master/CHANGELOG.md
Сергей Кишенин
11
Это не работает для меня. Работает в .bowerrc, но не в bower.json. Это похоже на такую ​​основную особенность ...
elliottregan
148
Мне любопытно, почему это не будет помещено в файл bower.json. Особенно, если это в любом случае для каждого проекта.
Хайден
8
Основываясь на документации, он должен быть в .bowerrc, а не в bower.json. Странно ... bower.io/#custom-install-directory
joemfb
20
В Windows, чтобы создать файл, начинающийся с «.», Просто создайте файл с завершающим символом «.». Другими словами, просто назовите это «.bowerrc».
PeteK68
76

В дополнение к редактированию .bowerrcдля установки пути установки по умолчанию, вы также можете настроить пользовательские пути установки для различных типов файлов.

Существует пакет узлов, называемый bower-installer, который предоставляет одну команду для управления альтернативными путями установки.

запустить npm install -g bower-installer

Настройте свой bower.json

{
  "name" : "test",
  "version": "0.1",
  "dependencies" : {
    "jquery-ui" : "latest"
  },
  "install" : {
    "path" : {
      "css": "src/css",
      "js": "src/js"
    },
    "sources" : {
      "jquery-ui" : [
        "components/jquery-ui/ui/jquery-ui.custom.js",
        "components/jquery-ui/themes/start/jquery-ui.css"
      ]
    }
  }
}

Запустите следующую команду: bower-installer

Это позволит установить components/jquery-ui/themes/start/jquery-ui.cssв ./src/css, и т.д.

lfender6445
источник
4
Это выглядит многообещающе, но bower_componentsкаталог все еще создается и заполняется. :(
Бен
какая версия беседки?
lfender6445
похоже на природу пакета. Вы можете открыть вопрос здесь github.com/blittle/bower-installer/issues или написать bash-скрипт для удаления каталога после установки.
lfender6445
1
Я думаю, что нет никакого смысла. Мне не нужен пакет, который по-прежнему загружает полное git-репо и зависимости, а затем просто копирует для меня определенные файлы ... Я могу сам нажать Ctrl + C. Я надеялся, что он загрузит только определенные файлы для меня.
Алендорф
да я тебя слышу в этом случае я просто .bowerrc и указываю на public / bower или public / vendor, чтобы сохранить проект простым.
lfender6445 15.10.15
61

У меня была та же проблема на моих окнах 10. Это то, что исправило мою проблему

  1. Удалить bower_componentsв корневой папке
  2. Создать .bowerrcфайл в корне
  3. В файле напишите этот код {"directory" : "public/bower_components"}
  4. Запустить bower install

Вы должны увидеть папку bower_components в вашей общей папке сейчас

Тим Анишер
источник
23

Нечто заслуживающее упоминания ...

Как отмечалось выше другими участниками, используя .bowerrcфайл с JSON

{ "directory": "some/path" }

необходимо - ОДНАКО, вы можете столкнуться с проблемой в Windows при создании этого файла. Если Windows выдает сообщение с просьбой добавить « имя файла », просто используйте текстовый редактор / IDE, например Notepad ++.

Добавьте JSON в файл без имени, сохраните его как .bowerrc - все готово !

Вероятно, легкое предположение, но я надеюсь, что это избавит других от ненужной головной боли :)

Cody
источник
18
В Windows, чтобы создать файл, начинающийся с «.», Просто создайте файл с завершающим символом «.». Другими словами, просто назовите это «.bowerrc».
PeteK68
Вы можете сделать это и с помощью git bash, просто наберите:echo >> .bowerrc
Leandro RR
7

Попробуйте поместить components.jsonфайл в publicкаталог вашего приложения, а не в корневой каталог, а затем снова запустите bower install... попробуйте это в домашнем каталоге вашего приложения:

cp components.json public
cd public
bower install
hagope
источник
1
да, это может быть способ, есть законный способ сделать это? но я все еще считаю это ответом.
Адам Рамадан
2
Вы можете написать сценарий bash bower.shдля добавления каталога, в который вы хотите установить, например `public-components.json ', а затем сгенерировать приведенные выше команды ..
hagope
2
Оба эти ответа звучат супер-хаки, определенно не желательно
Джей
-3

Привет, я такая же проблема, и решить эту проблему.

Пользователь Windows и не может создать файл .bowerrc.

в cmd зайти в любую папку

установите любые пакеты, которые содержат файл .bowerrc.

bower install angular-local-storage

этот плагин содержит файл .bowerrc. скопируйте это и перейдите в свой проект и вставьте этот файл.

и в Visual Studio - Explorer Solution - показать все файлы и включить проект .bowerrc файл видел.

я разрешаю это способами :)

Абдулла САРГИН
источник
Вы можете использовать Cygwinили Cmderтерминал для создания .bowerrcфайла.
Francis.TM
4
Просто создайте файл с любым именем, затем откройте PowerShell или командную строку и переименуйте его.
TrueWill
Вы можете создать точечный файл в Windows, указав имя файла как .name. - до сих пор не многие знают об этом после стольких лет его доступности :)
Алекс Павен