Вопрос по использованию asset в Composer

Balancer

Новичок
В Composer нет штатного инструментария для работы с ресурсами/asset.

Есть несколько более-менее популярных решений со своими достоинствами и недостатками.

libra/libra-assets-installer — умер и оживлению не подлежит.

robloach/component-installer — отлично подходит для раздачи собственных ресурсов. Но задача чаще стоит в том, чтобы подключать сторонние пакеты, в первую очередь — bower. Можно, конечно, собирать свои сборки, даже автоматизировать процесс, но придётся постоянно следить за выходом новых версий. Когда пакетов становится хотя бы десяток, это уже утомительно.

Есть средства для работы напрямую с bower-asset:

fxp/composer-asset-plugin — очень популярное решение, отчасти из-за простоты использования, отчасти из-за использования в Yii. Минус в очень долгой работе и необходимости первого глобального включения (или в новых версиях composer/plugin стали такое разруливать? — давно не натыкался на ошибку зависимостей, но специально руки не доходили проверить). Главный же для меня минус — это то, что пакет из bower тянется целиком. Со всеми исходниками, примерами, документацией... Иногда они занимают место в десятки раз больше, чем сами рабочие файлы .min.js/.min.css... И всё это вываливается на боевой сервер!

asset-packagist.org — практически то же самое решение, даже совместимое по форматам, только требует указания отдельного репозитория, что в дополнительный минус, но работает быстро, что в плюс. Главный же минус загрузки уймы мусора остаётся таким же.

Так вот, у меня возникает вопрос. Может, я что-то упустил? Может, есть решения, типа fxp/composer-asset-plugin/asset-packagist.org, но позволяющие на уровне пакета (не composer.json проекта!) указать дополнительно, какие файлы и каталоги нужно реально задействовать из bower-пакета? Или есть какое-то решение третьего типа?
 

флоппик

promotor fidei
Команда форума
Партнер клуба
И всё это вываливается на боевой сервер!
Может, я что-то упустил?
В реальности никто обычно не деплоит композером на продакшне, и не собирает там заново ассеты. Это обычно чревато разными проблемами, включая нормальный откат деплоя, лишнюю нагрузку боевого сервера в ущерб посетителям, и тд. Обычно на продакшн должен попадать уже собранный архив с обновлением и упакованными ассетами, который там распаковывается, и просто симлинком делается текущим релизом.
 

WMix

герр M:)ller
Партнер клуба
И от bower лучше избавляйся, там лока версии нет, можно все обычным нодом грузить.
Компелить css и js и складывать в public лучше gulp или grunt
 

A1x

Новичок
я думаю использовать подобные плагины к композеру плохое решение, - каждая тулза должна заниматься своими задачами. Для пхпшных пакетов - композер, для джаваскриптовых - npm (bower нет потому что не вижу смысла использовать два разных джаваскриптовых менеджера). Для всякой компиляции и минификации - gulp
 

Balancer

Новичок
Для пхпшных пакетов - композер, для джаваскриптовых - npm (bower нет потому что не вижу смысла использовать два разных джаваскриптовых менеджера)
И npm, и bower обладают теми же недостатками, что перечислены, но кроме того, требуют ещё и лишних инструментов. Так что в данном конкретном случае их применение вместо composer смысла не несёт.
 

AmdY

Пью пиво
Команда форума
Ни в коем случае ни юзать ни один из данных инструментов. Теперь всё завязано на npm, даже bower отмирает. Мало того, даже наша попытка заменить npm на новый шустрый yarn провалилась, т.к. многие пакеты завязаны на специфике npm и его скриптах. Нужно просто смириться и страдать.
 

A1x

Новичок
их применение вместо composer смысла не несёт.
gulp и npm - практически стандарт де факто, проверенные и надежные решения с кучей обучающих материалов, а например, с глючным fxp/composer-asset-plugin я как-то помучился одно время, больше желания нет. Можно написать npm install, gulp build в секции scripts composer.json и забыть. Насчет того что пакеты тянутся целиком ничего не могу сказать, не вижу в этом проблемы - места на диске они занимают не настолько критично много чтобы усложнять себе жизнь
 

AmdY

Пью пиво
Команда форума
gulp и npm - практически стандарт де факто, проверенные и надежные решения с кучей обучающих материалов, а например, с глючным fxp/composer-asset-plugin я как-то помучился одно время, больше желания нет. Можно написать npm install, gulp build в секции scripts composer.json и забыть. Насчет того что пакеты тянутся целиком ничего не могу сказать, не вижу в этом проблемы - места на диске они занимают не настолько критично много чтобы усложнять себе жизнь
ну, gulp далеко не стандарт, он легко заменяем, у нас только webpack, а вот с npm это vendor lock и в любой момент какой-то из пакетов может не заработать под другим пакетным менеджером, т.к. npm слишком много умеет и начали завязываться на него. потому к чёрту все эти плагины к composer, я хочу в случае чего отказаться от компосер, если появится более шустрый менеджер.
 
Сверху