Як змінити папку компонентів за замовчуванням для 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.