Меньшая компиляция в Play 2 серьезно замедляется

Меньшая компиляция в моей новой установке Play 2 действительно медленная. Даже после размещения "_" на файлах, которые не нуждаются в прямой компиляции, обновление страницы после редактирования LESS занимает ~ 8 секунд. Это сравнивается с локальным компилятором с использованием Codekit, который занимает менее секунды.

Любые предложения по ускорению этого процесса? Стоит ли регистрировать ошибку против Play, чтобы это выглядело?

Вот подробности о моих размерах файлов: Моя настройка LESS очень проста. _reset.less(.5k) _desktop.less(13k), _tablet.less(10k), _mobile.less(8k), _sprites.less(25k). Файл all.less(.3k), который объединяет все. Это. Итоговый файл css равен 53k.

Ответ 1

Я написал небольшое исследование этой проблемы. Вы можете найти здесь здесь.

В нижней строке: я получаю более высокую производительность, переключаясь на Sass. Это не сложно. Использовать Play-Sass SBT-плагин, и если вы используете Bootstrap, используйте файлы SAS Bootstrap из sass-twitter-bootstrap проект.

Предварительная компиляция ваших файлов LESS с помощью команды lessc - это еще одно решение, и оно довольно быстро.

Предполагая, что ваш проект использует Bootstrap, используя предварительно скомпилированный Bootstrap, а не файлы Bootstrap LESS, также является большой победой, поскольку компилятор Play LESS перекомпилирует все файлы LESS, когда один из них изменяется, а Bootstrap довольно большой. Но для некоторых из нас использование предварительно скомпилированного Bootstrap неудобно...

Использование Play 2.0 Rhino-based, компиляция LESS по требованию является самым медленным вариантом. Свинья-медленно, на самом деле. И проигнорируйте мой комментарий о incrementalAssetsCompilation. Он задокументирован, но, похоже, он не находится в базе кода 2.0.x.

EDIT (22 мая 2013 г.) Джонатан Парсонс собрал плагин play-lessc, в котором используется lessc для компиляции файлов LESS. Это может значительно уменьшить время компиляции LESS в проекте Play. См. https://github.com/jmparsons/play-lessc

Ответ 2

Это значительно сократит время компиляции:

export SBT_OPTS="$SBT_OPTS -Dsbt.jse.engineType=Node"

Это позволяет использовать Node вместо Rhino при запуске JavaScript.

Ответ 3

Из Play Framework 2.3 вы можете использовать node.js как механизм JavaScript по умолчанию, который используется для меньшей компиляции, js lint, CoffeeScript и т.д.

Загрузите и установите node.js(https://nodejs.org) и поместите

JsEngineKeys.engineType := JsEngineKeys.EngineType.Node

to build.sbt.

Ссылка # 1 - Ссылка # 2