RIA Builder

PHP библиотека, позволяющая на основе package.json файлов сжимать JavaScript, CSS, LESS и HTML код в один файл. Я стремился сделать библиотеку максимально простой в использовании и с достаточно богатым API.
Для работы библиотека использует только PHP, что даёт возможность использовать её без установки дополнительного ПО для компрессоров.

Исходники
github.com/affka/riaBuilder
Статья на Habrahabr
habrahabr.ru/sandbox/76658
Где применяется
HelpOnClick

Что умеет

  • Поддержка форматов JavaScript, CSS, LESS, HTML;
  • Подгрузка вложенных модулей;
  • Подгрузка файлов по маске (*.js);
  • Компиляция LESS в CSS средствами PHP;
  • Сжатие (минификация) JavaScript, CSS, HTML кода средствами PHP;
  • Подключение файлов в зависимости от названия и версии браузера;
  • Создание билда как из командной строки, так и динамически из php;
  • Добавление обёртки в виде функций для JavaScript кода;
  • Основной функционал покрыт юнит тестами.

Пример использования

Допустим у нас есть небольшое веб-приложение из двух файлов:

testapp/style_ie6.less
@color: red;
body {
    color: @color;
}
и testapp/main.js
function a(message) {
    alert(message);
}

Создаём для них файл package.json:

{
    "include": [
        {
            "type": "less",
            "files": [
                "styles_ie6.less"
            ],
            "browser": "ie <=6"
        },
        "*.js"
    ]
}

Делаем билд нашего приложения:

/var/www/riabuilder/run -c testapp

В результате получим файл testapp_min.js со следующим содержанием:

... // Javascript часть библиотеки RIABuilder
if (RIABuilder.matchBrowser("ie <9")){RIABuilder.appendStyle("body {color: red;}");}
function a(m) {alert(m);}

Область применения

Библиотека скорее всего подойдёт для малых и средних веб–приложений, так как не имеет анализатора зависимостей. Я использую её для нескольких не малых проектов, а значит в будущем в ней как минимум будут исправляться найденные ошибки.

Более подробное описание и примеры использования можно найти на GitHub.