Я недавно начал работать с Composer, NPM и Bower. Нет, между их возможностями много общего, и мне было интересно, является ли мой подход вменяемым? Если нет, что мне делать?
Обычно я начинаю свои проекты PHP, настраивая composer для загрузки моих библиотек PHP и зависимостей. После этого я использую NPM для установки Gulp и всех плагинов Gulp, которые я использую. И, наконец, я использую Bower для получения библиотек JS и CSS.
Большинство из них могут загружаться из GitHub, поэтому теоретически я мог бы использовать Composer для установки моего JS / CSS или Bower для загрузки моего PHP. Я в значительной степени настроен на Composer для его возможностей автозагрузки, поэтому я предполагаю, что мой вопрос заключается в том, должен ли я сбросить Bower?
В настоящее время при развертывании я оформляю репо и звоню npm install
который устанавливает Gulp и т. д. По моему package.json
я использую "scripts": {"install": "gulp install"}
который пинает меня install
задача в моем gulpfile.js
, Это загружает в gulp-composer
а также gulp-bower
плагины, которые запускают установки Composer и Bower.
Все они в основном одинаковы, различие заключается в их списке пакетов по умолчанию (NPM исключительно NodeJS, Composer в основном PHP, Bower исключительно js / css и т. Д.) И языке, на котором они написаны.
Однако у всех них есть одно ограничение: они могут устанавливать пакеты только в одном месте. Это означает, что вы не можете установить some/php-framework
в vendor/
а также my-css-framework
в web/
,
Расположение очень важно: вы часто хотите, чтобы ваши PHP-код / библиотеки NodeJS жили вне публичного корня, но ваши активы должны находиться внутри публичного корня.
Я думаю, что это очень хорошая практика, если вы тоже можете использовать каждый менеджер зависимостей для языка, для которого он был разработан (например, Composer также выполняет некоторые специфические для PHP вещи, такие как автозагрузка, в то время как NPM выполняет некоторые специфические для NodeJS вещи).
Других решений пока нет …