2014-10-29 2 views
1

У меня есть приложение Symfony2, работающее в режиме dev внутри виртуального бокса Ubuntu на MacBook Pro. Сайт работает довольно быстро, пока я не захочу сбрасывать и/или смотреть (app/console assetic: dump) активы. Для сбрасывания 42 scss- и некоторых js-файлов требуется около 20-30 секунд. Наблюдатель также работает медленно, после изменения одного файла он занимает 10-15 секунд, пока изменения не будут выполнены. Это нормально? На моей локальной машине для компиляции файлов с компасом требуется всего 5 секунд.Утиный дамп Symfony и --watch ужасно медленный

Любые идеи, как я мог бы ускорить весь процесс?

ruby: 1.8.7 
compass: 1.0.1 
sass: 3.4.6 

ответ

0

Вот как работает dev. Вы работаете с активами и кодом, которые меняются «на лету», когда вы разрабатываете, и поэтому Symfony очищает свой скомпилированный кеш между загрузкой каждой страницы, чтобы отобразить самые последние результаты для вас.

Assetic также разбивает файлы на отдельные файлы CSS вместо того, чтобы агрегировать их для вас в один файл, чтобы вы могли отлаживать ваши файлы SCSS в инспекторе браузера. Поскольку вы используете 42 файла SCSS для компиляции с SASS на лету, неудивительно, что assetic:dump занимает некоторое время.

Наблюдатель - это тот же сценарий, поскольку он выполняет то же самое, если он обнаруживает изменение в любом файле. Это просто компромисс в том, что вы можете разрабатывать и разрабатывать «на лету» с вашей средой разработчиков.

Почему он медленнее, чем ваниль compass установка? Чтобы догадаться, есть еще несколько шагов, связанных с тем, как Assetic управляет вашими файлами - он должен найти их из ваших шаблонов, переписать пути (если включен cssrewrite), перемещать файлы и компилировать их.

варианты:

  1. Оптимизация SCSS файлов для компиляции быстрее
  2. уменьшить количество SCSS файлов
  3. Прекратить использование assetic для управления активами

но после развертывания этого к окружению prod, у вас будет все кеширование в течение более длительных периодов времени, и поэтому вы не столкнетесь с 20-30-секундными проблемами с assetic compi на лету.

+1

В зависимости от конфигурации и доступности компаса на виртуальной машине Ubuntu пользовательский код просмотра может компилировать scss-файлы в PHP (с помощью компилятора PHP для scss). –

Смежные вопросы