При применении uglifycss к моему css все мои объявления @media и @font-face теряются
Я использую следующий блок в моем базовом шаблоне ветки, чтобы создать сжатые файлы CSS:
{% stylesheets output='bundles/myBundle/compressed/compressed.css'
filter='uglifycss'
filter='cssrewrite'
'bundles/myBundle/stylesheets/app.css'
'bundles/myBundle/stylesheets/tablet.css'
'bundles/myBundle/stylesheets/phone.css'
%}
<link rel="stylesheet" href="{{ asset_url }}" />
{% endstylesheets %}
Еще несколько недель назад (и обновление до Ubuntu 15.04) назад это работало нормально, чтобы выгрузить все мои css файлы должным образом.
Теперь мои части @media и my @font-family удалены из скомпилированного / сжатого css.
Если я применяю только фильтр cssrewrite, а не фильтр uglifycss, то здесь присутствуют части @media и @font-face, как и ожидалось.
Я использую: uglifycss@0.0.15, Symfony v2.6.8, symfony/assetic v2.6.1
Кто-нибудь знает, что здесь может пойти не так?
Спасибо за вашу помощь! Dominik
Изменить: я смог закрепить это немного больше. Symfony выполняет следующую команду, чтобы очистить CSS.
/usr/bin/nodejs /usr/local/bin/uglifycss /path/to/my/app.css
выполнение той же команды в командной строке bash также вызывает такое же неправильное поведение. Так что это не проблема Symfony или сборка, но, похоже, проблема uglifycss.
Есть идеи?
Ура, Доминик
1 ответ
Дальнейшая отладка показала, что проблема была в комментарии css.
Согласно http://www.w3.org/TR/CSS21/syndata.html такой комментарий:
/*/////////////////////////////////*/
/* some comment */
/*/////////////////////////////////*/
Но оказывается, что uglifycss 0.0.15 имеет проблемы с комментарием, оканчивающимся на '/*/'.
Добавление пробела между последним '/' и '*/' решило мою проблему.
/*//////////////////////////////// */
/* some comment */
/*//////////////////////////////// */
Я также открыл вопрос о GitHub. https://github.com/fmarcia/UglifyCSS/issues/33
Ура, Доминик