Бауэр (Bower) это пакетный менеджер для front-end разработчиков. Позволяет скачивать необходимые JavaScript библиотеки и CSS стили. Для того, чтобы не посещать сайты с нужными библиотеками в поисках обновлений. Бауэр делает все по команде в консоли и файлу конфигурации.
Компосер (Composer) это менеджер зависимостей PHP, который обновляет необходимые библиотеки вашего проекта. Компосер установит необходимые библиотеки за вас, ему лишь нужно указать какие.
Почему bower и composer. Потому что первый — это менеджер для фронтенд-составляющей, а второй — для бекенда. Композером не слишком удобно пользоваться для управления зависимостями морды приложения.
Ставим npm
sudo yum install npm
или
sudo apt-get install npm
Для начала нам нужно этот самый bower поставить.
$ sudo npm install -g bower
Лирическое отступление на тему «зачем нужна опция -g».
Существует два варианта установки:
глобальный: все модули размещаются в папке {prefix}/lib/node_modules, исполняемые файлы в {prefix}/bin: так же устанавливаются man-страницы
локальный: все модули размещаются в папке node_modules текущей папки, а все исполняемые файлы — в node_modules/.bin: man-страницы не устанавливаются
Локальный способ стоит использовать тогда, когда вы точно знаете, что устанавливаемый модуль потребуется только вашему проекту. Чаще всего все используют глобальную установку чтобы все было доступно и другим проектам.
Теперь надо сконфигурировать его.
Конфигурация осуществляется посредством файла .bowerrc, который может опцию directory, которая показывает, куда складывать всё скачиваемое. Остальные опции можно глянуть тут.
Bower.json https://github.com/bower/spec
Configuration / .bowerrc http://bower.io/docs/config/
Registry API https://docs.google.com/document/d/17Nzv7onwsFYQU2ompvzNI9cCBczVHntWMiAn4zDip1w/edit#heading=h.oqro6l7qiz6u
{ "directory" : "web/vendor/" }
Теперь можно указать зависимости. Все это делается в bower.json.
{ "name": "Cool application", "dependencies": { "bootstrap": "*" } }
Ставим git
sudo yum install git-all
Пакеты можно искать на сайте http://bower.io/search/.
Или прямо из консоли
$ bower search angular
Теперь мы готовы к тому, чтобы сделать первоначальную установку.
$ bower install
Теперь можно объединить bower и composer. При таком подходе на каждый запуск composer install или composer update будет выполняться запуск bower install, который обновит все библиотеки.
Просто добавляем в composer.json
{ // ... "scripts": { "post-install-cmd": [ "bower install" ], "post-update-cmd": [ "bower install" ] } }
Теперь вопросы:
-где размещать PHP и JS файлы собственно моего проекта? В /vendor и /bower_components?
-да, использовать папки по умолчанию
-как это все организовать правильно, красиво и удобно?
/ .. framework_dirs ..
/vendor
/bower_components
/public_html
+ assets/..
+ index.php
-По поводу bower, все что он генерит, многие кладут сразу в public_html, но т.к. у него нет возможности удалять лишние (например из всего пакета jquery оставить только 1 файл jquery.js), то я считаю, что полную папку лучше прятать и деплоить исключительно то, что нужно.
Еще одна полезная ссылка http://yeoman.io/generators/
Скопипизжено с https://russianpenguin.ru/2014/06/18/bower-composer/ и еще с нескольких сайтов