RiaBuilder — сжимаем js, css, less, html средствами PHP
Invite pending
Доброго времени суток, <%- username %>! Наконец-то нашлось время для оформления и публикации в open source своих решений, с одним из которых хочу поделиться с хабросообществом.
RiaBuilder — PHP библиотека, позволяющая на основе package.json файлов сжимать JavaScript, CSS, LESS и HTML код в один файл. Я стремился сделать библиотеку максимально простой в использовании и с достаточно богатым API.
Для работы библиотека использует только PHP, что даёт возможность использовать её без установки дополнительного ПО для компрессоров.
Допустим у нас есть небольшое веб-приложение из двух файлов:
testapp/style_ie6.less
и testapp/main.js
Создаём для них файл package.json:
Делаем билд нашего приложения:
В результате получим файл testapp_min.js со следующим содержанием:
Библиотека скорее всего подойдёт для малых и средних веб-приложений, так как не имеет анализатора зависимостей. Я использую её для нескольких не малых проектов, а значит в будущем в ней как минимум будут исправляться найденные ошибки.
Более подробное описание и примеры использования можно найти на GitHub.
RiaBuilder — PHP библиотека, позволяющая на основе package.json файлов сжимать JavaScript, CSS, LESS и HTML код в один файл. Я стремился сделать библиотеку максимально простой в использовании и с достаточно богатым API.
Для работы библиотека использует только PHP, что даёт возможность использовать её без установки дополнительного ПО для компрессоров.
Что умеет:
- Поддержка форматов 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.