Подскажите, есть ли библиотека на PHP для подключения js+css загруженные пакетов через менджер bower

Активист

Активист
Команда форума
Сабж.

Условно надо: $layout->addBowerPkg("jqueryui");

Который парсит метаданные (json) пакета, подключает их + подключает зависимости.
 
Что не привествуешь? Пакетный менеджер? Гораздо проще управлять пакетами JS - Бутстрап, и Wow и Font Awesome, и еще масса свистелок и перделок. Я в Linux сижу и мне так удобнее)) просто делаю комманду bower install animate и тот сам все что надо качает, и устанавливает, с зависимостями. Надо обновить - делаю bower update font-awesome.

По поводу ссылки, какжеться это не то - это пакетный менеджер? Composer? или я что-то не понял)

При использовании пакетов (компотеннтов) есть такие файлы:
Код:
~/bower_components# cat jquery-bridget/bower.json
{
  "name": "jquery-bridget",
  "version": "1.0.1",
  "main": "jquery.bridget.js",
  "description": "Bridget makes jQuery widgets",
  "devDependencies": {
    "jquery": ">=1.4.2",
    "qunit": "~1.10"
  }
}

Код:
cat jquery.nicescroll/bower.json
{
    "name": "jquery.nicescroll",
    "version": "3.5.4",
    "main": [
        "./jquery.nicescroll.js",
        "./zoomico.png"
    ],
    "ignore": [
        "**/.*",
        "demo",
        "package.json"
    ],
    "dependencies": {
        "jquery": ">=1.4.3"
    }
}

Код:
cat jquery-minicolors/component.json
{
    "name"         : "jquery-minicolors",
    "version"      : "2.1.10",
    "description"  : "jQuery MiniColors Plugin",
    "homepage"     : "",
    "main"         : [ "./jquery.minicolors.js", "./jquery.minicolors.css" ],
    "dependencies" : {
        "jquery" : ">= 1.7.x"
    },
    "keywords"     : [
    ],
    "author" : {
        "name" : "Cory LaViska",
        "web"  : "http://www.abeautifulsite.net/"
    },
    "license": [
        "http://www.opensource.org/licenses/mit-license.php"
    ]
}


Так вот, хочется найти либу, которая бы в шаблон вставляла нужные CSS и JS при подключении скажем jquery.nicescroll - подключала "./jquery.nicescroll.js", а также и зависимость jquery.
 
Так рулить неправильно.

Подключишь один, второй. Оба хотят jQuery. Надо решать такие конфликты. Потом захочешь все-таки нормально оптимизировать статику и это превратится в сущий гемор, ибо при оптимизации(собирание всех файлов с зависимостями в один, например) рулить конфликтами типа jQuery уже крайне сложно. Мне кажется эту проблему лучше решать отдельно. bower решает свою, узкоспециализированную, задачу.
 
Что не привествуешь? Пакетный менеджер? Гораздо проще управлять пакетами JS - Бутстрап, и Wow и Font Awesome, и еще масса свистелок и перделок. Я в Linux сижу и мне так удобнее)) просто делаю комманду bower install animate и тот сам все что надо качает, и устанавливает, с зависимостями. Надо обновить - делаю bower update font-awesome.

bower, grunt пофиг - сами менеджеры пакетов приветствую, как stand-alone решения, не приветствую сброку и добавление зависимостей из пыха
 
Так рулить неправильно.

Подключишь один, второй. Оба хотят jQuery. Надо решать такие конфликты. Потом захочешь все-таки нормально оптимизировать статику и это превратится в сущий гемор, ибо при оптимизации(собирание всех файлов с зависимостями в один, например) рулить конфликтами типа jQuery уже крайне сложно. Мне кажется эту проблему лучше решать отдельно. bower решает свою, узкоспециализированную, задачу.
Конфликты? Например?
 
$layout->addBowerPkg("jqueryui");
...
$layout->addBowerPkg("jquery.another.awesome.plugin");

Оба хотят jquery.js. Пока подключается пофайлово.. можно и разрулить. а вот когда он все эти бандлы начнет собирать в один файл для оптимизации то jquery будет подключен в оба. И как рулить такое я не знаю.

Upd: тут я понял, что варианты есть.. но зачем усложнять? Не проще самому правильно сконфигурировать подключаемую статику?
 
$layout->addBowerPkg("jqueryui");
...
$layout->addBowerPkg("jquery.another.awesome.plugin");

Оба хотят jquery.js. Пока подключается пофайлово.. можно и разрулить. а вот когда он все эти бандлы начнет собирать в один файл для оптимизации то jquery будет подключен в оба. И как рулить такое я не знаю.

Upd: тут я понял, что варианты есть.. но зачем усложнять? Не проще самому правильно сконфигурировать подключаемую статику?
jquery один, зачем его дважды подключать? проблему зависимостей решает сам bower
 
флоппик, ок. Рад за тебя :) . Обьясню проблему как понимаю ее я. Расскажешь в чем я неправ.

Код:
$layout->addBowerPkg("jquery.plugin1");
...
$layout->addBowerPkg("jquery.plugin2");
Грубо говоря генерирует:
Код:
<script src="jquery.js"...
<script src="jquery.plugin1.js"...
....
<!-- тут он понимает что jquery он уже подключал. Поэтому не будет делать это еще раз. -->
<script src="jquery.plugin2.js"...
Это самый простой вариант. Но так не делают. Все давно уже собирают в бандлы..

Ну как реальный вариант.. эта штука, проанализировав список файлов, выдаст чтонибудь типа:
Код:
<script src="/bundle.php?files=jquery.js,jquery.plugin1.js,jquery.plugin2.js"...

Ну ладна. наверно идея имеет право на жизнь. Нужно только анализировать грамотно. Если не возникнет проблем типа:
Код:
"jquery" : ">= 1.7.x"
....
"jquery" : "< 1.6.x"

:)
 
Это самый простой вариант. Но так не делают. Все давно уже собирают в бандлы..
...
Код:
<script src="/bundle.php?files=jquery.js,jquery.plugin1.js,jquery.plugin2.js"...
...
Ну ладна. наверно идея имеет право на жизнь. Нужно только анализировать грамотно. Если не возникнет проблем типа:
Код:
"jquery" : ">= 1.7.x"
....
"jquery" : "< 1.6.x"

:)
По поводу версий jquery - это еще на этапе установки пакета пакетным менеджером вылезет, типа конфликт версий. Что касается "bundle.php" - это не проблема. Я перекладываю эту заботу на модуль apache (nginx) pagespeed ( https://developers.google.com/speed/pagespeed/module ) . Помимо минимизации трафика путем объединения множества файлов (js и css) и их упавковки, он еще засовывает мелкие изображения в сам HTML ( <input src="base64:blabla"> ), увеличивая загрузку за счет снижения DNS и общего количества запросов.
 
есть, во фреймворках, но ты ими не пользуешься
 
Сверху