Composer и bower

Любой проект помимо бэкенд скриптов включает в себя большое количество фронтенда, в частности — различные JS библиотеки. Многие уже успели ощутить гору плюсов от использования пакетного менеджера зависимостей Composer в своих проектах, но так же многие не знают каким образом можно пакетинизировать JS.

Что такое Bower?

Bower — «второй» пакетный менеджер node.js. Первый — nmp, но в нем есть несколько минусов, поэтому большинство использует bower. Для установки bower необходимо выполнить команду:

npm install -g bower

Флаг -g означает, что пакет необходимо установить глобально на всю систему, а не в проект.

Если npm еще не установлен, то нужно его установить. В моей любимой ОС Gentoo npm можно отыскать в пакете net-libs/nodejs. Npm поставляется как опция к пакету с одноименным названием «npm».

emerge -av net-libs/nodejs

Composer + bower. Вариант первый.

Composer поддерживает запуск любых сценариев в момент выполнения composer install, либо composer update. Благодаря этому мы можем вызывать соответствующие команды у bower. Для этого необходимо в composer.json дописать:

{
  "scripts": {
      "post-install-cmd": [
      "bower install"
    ],
      "post-update-cmd": [
      "bower update"
    ]
  }
}

Таким образом, при запуске composer update и завершения основной работы composer будет вызываться bower update и обновлять JS.

Composer + bower. Вариант второй — великолепный!

Вариант первый, конечно, намного лучше, чем ручной вызов bower, но не идеальный. Существует более красивое решение:

composer require fxp/composer-asset-plugin dev-master

Этот пакет позволяет подключать пакеты из bower и npm благодаря привычным командам:

composer require bower-asset/colorbox dev-master

Поддерживаются все необходимые команды: depends, diagnose, licenses, remove, require, search (только для bower), show, status.

Проект в данный момент находится в статусе beta, но, тем не менее, все работает!

Подробную информацию об использовании можно получить на github разработчика.

Оставить комментарий


Примечание - Вы можете использовать эти HTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>