Як змінити папку компонентів за замовчуванням для bower?


475

Я роблю новий проект, який використовує bower з твіттера. Я створив a, 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і т.д.


4
Це виглядає перспективно, але bower_componentsкаталог все ще створюється та заповнюється. :(
— Бен

яка версія баудера?
— lfender6445

виявляється характер пакету. Ви можете відкрити проблему тут github.com/blittle/bower-installer/isissue або написати скрипт bash для видалення встановлення повідомлення в каталозі.
— lfender6445

1
Я думаю, що сенсу немає. Я не хочу пакет, який все ще завантажує повний git repo та залежності, а потім просто копіює конкретні файли для мене ... Я можу сам натиснути Ctrl + C. Я сподівався, що він завантажить лише конкретні файли для мене.
— Алендорф

так, я вас чую. у цьому випадку я просто .bowerrc і вказую на public / bower або public / постачальника, щоб зробити проект простим.
— lfender6445

61

У мене була така ж проблема у моєму Windows 10. Це те, що вирішило мою проблему

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

Ви повинні побачити папку bower_components у своїй загальнодоступній папці


23

Щось варто згадати ...

Як зазначали вище інші учасники, використовуючи .bowerrcфайл із JSON

{ "directory": "some/path" }

необхідно - ЗАРАЗ, ви можете зіткнутися з проблемою в Windows під час створення цього файлу. Якщо Windows дає вам повідомлення про те, щоб додати " ім'я файлу ", просто скористайтеся текстовим редактором / IDE, таким як "Блокнот ++".

Додайте JSON до безіменного файлу, збережіть його як .bowerrc - вам добре!

Можливо, легке припущення, але я сподіваюся, що це врятує інших непотрібний головний біль :)


18
У Windows для створення файлу, який починається з ".", Просто створіть файл із заднім числом ".". Іншими словами, просто називайте це ".bowerrc."
— PeteK68

Ви можете це зробити і з git bash, просто введіть:echo >> .bowerrc
— Leandro RR

7

Спробуйте ввести components.jsonфайл у publicкаталог вашої програми, а не в кореневий каталог, а потім повторно запустіть bower install... спробуйте це в домашньому каталозі додатка:

cp components.json public
cd public
bower install

1
Так, це може бути спосіб, чи є законний спосіб це зробити? але я все ще вважаю це відповіддю.
— Адам Рамадхан

2
ви можете написати скрипт bash, bower.shщоб додати каталог, в який ви хочете встановити, як-от `public-components.json ', тоді він генерує вищезазначені команди ..
— hagope

2
Обидві ці відповіді звучать супер хакі, безумовно, небажано
— Джей

-3

Привіт, я ж проблема і вирішити цей спосіб.

користувач Windows і vs cant'create .bowerrc файл.

в cmd перейдіть до будь-якої папки

встановити будь-які пакунки, які містять приклад файлу .bowerrc

bower install angular-local-storage

цей плагін містить .bowerrc файл. скопіюйте це та перейдіть до свого проекту та вставте цей файл.

а у візуальній студії - провідник рішень - покажіть усі файли та включіть .Bwerrc файл

Я вирішую це способи :)


ви можете використовувати Cygwinабо Cmderтермінал для створення .bowerrcфайлу.
— Francis.TM

4
Просто створіть файл з будь-яким ім'ям, а потім відкрийте PowerShell або командний рядок і перейменуйте його.
— TrueWill

Ви можете створити крапковий файл у Windows, вказавши ім'я файлу як ".name". - досі не так багато людей знають це після стількох років, коли це було доступно :)
— Алекс Павен
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.