Меняем компрессор js

Нет, нет — это инструкция не для владельцев Мерседеса.
Речь идет о библиотеке JSMin для сжатия js-файлов.
Я заглянул на репозитарий либы на github, где черным по-белому по-русски написано что мол проект больше не поддерживается, и что не стоить использовать, ведь есть более достойные инструменты, среди которых есть JShrink.

Итак:
1. Загрузим JShrink и сохраним сюда: /engine/lib/external/JShrink/src/Minifier.php
2. Закомментируем строку и добавим новую, чтобы получилось так:
//require_once(Config::Get('path.root.engine').'/lib/external/JSMin-1.1.1/jsmin.php');
require_once(Config::Get('path.root.engine').'/lib/external/JShrink/src/Minifier.php');

3. Закомментируем строку и добавим новую, чтобы получилось так:
//? JSMin::minify($sContent)
? \JShrink\Minifier::minify($sContent, array('flaggedComments' => false))

4. Сбрасываем кэш и ВСЕ!

Обращаю внимание что сжатие должно быть включено в конфиге.

Разницы в размере сжатых файлов до и после практически нет. Что касается сжатого кода — то пока внимательно его не изучал.

Также обращаю внимание, что не смотря на правку файлов движка (!!!), это не должно сказаться на работе плагинов или чего-либо другого.

8 комментариев

avatar
Только замечу что это будет работать на пхп 5.3 и выше.
avatar
Не хватает только ссылки на JShirnk
avatar
Да-да…
avatar
Провел эксперимент:
JSMin-1.1.1 на выходе 582 679 bytes
JShirnk на выходе 582 764 bytes
Пожалуй буду дальше использовать JSMin
avatar
Думаю, тут дело не в размере
avatar
это из-за 90 байт?..
avatar
При установке ливстрита (хостинг и впс) столкнулся с проблемой: PHP Fatal error: Uncaught exception 'JSMinException' with message 'Unterminated string literal.' in.
При чем это только при использовании php 5.3 и выше, если устанавливать на php 5.2, то все нормально.

Решил поменять JSMin на JShrink. Теперь сайт стартует и на php 5.5, но не без косяков.

PHP Warning: mb_strpos(): Empty delimiter in /engine/lib/external/JShrink/Minifier.php

При этом на сайте не работают выпадающие меню, вкладки и т.д.

Что это может быть?
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.