Play Framework 2.1.x не будет компилировать Twitter Bootstrap 3 LESS
Я пытаюсь настроить Play 2.1.1 с помощью Twitter Bootstrap 3 с помощью файлов LESS.
Я поместил файлы LESS для начальной загрузки в app\assets\stylesheets\bootstrap
.
Я обновляю конфигурацию проекта (Build.scala
), чтобы скомпилировать только основной файл bootstrap.less
(импорт других файлов):
val main = play.Project(appName, appVersion, appDependencies).settings(
lessEntryPoints <<= baseDirectory(customLessEntryPoints),
javascriptEntryPoints <<= baseDirectory(customJavascriptEntryPoints)
)
def customLessEntryPoints(base: File): PathFinder = (
(base / "app" / "assets" / "stylesheets" / "bootstrap" / "bootstrap.less") +++
(base / "app" / "assets" / "stylesheets" / "*.less")
)
def customJavascriptEntryPoints(base: File): PathFinder = (
(base / "app" / "assets" / "javascripts" * "*.js")
)
Я не могу скомпилировать Bootstrap, я получаю следующее:
Expected )
In ...\app\assets\stylesheets\bootstrap\mixins.less at line 0.
Проблема, похоже, исходит из параметров mixin, разделенных точкой с запятой. Когда я заменяю запятую запятой, она работает.
Требуется ли компилятору Play LESS запятую? Нужно ли заменять каждую точку с запятой запятой или я могу настроить компилятор Play LESS?
Спасибо
EDIT:
Здесь есть официальная проблема: https://github.com/playframework/playframework/issues/1423
Кажется, мне нужно дождаться обновления Play с новой версией компилятора LESS. Тем временем я буду использовать внешний компилятор.
Ответы
Ответ 1
Вот временное решение, отправленное парнем mica16 из github:
1) Я установил плагин в соответствии с документацией: https://github.com/jmparsons/play-lessc (там ошибка в показанном примере = > команда должна быть: npm install -g less
, а не npm install -g lessc
).
2) В plugins.sbt я добавил следующие строки:
resolvers += "JMParsons Releases" at "http://jmparsons.github.io/releases/"
addSbtPlugin("com.jmparsons" % "play-lessc" % "0.0.8")
(убедитесь, что вы разделили их на линейный переход)
3) Я открыл свою сборку build.scala, и я вставил строки, указанные плагинами, и добавил их:
def customLessEntryPoints(base: File): PathFinder =
(base / "app" / "assets" / "stylesheets" * "bootstrap.less") +++
(base / "app" / "assets" / "stylesheets" * "main.less") (main.less is my custom css)
По какой-то причине я не могу определить (на данный момент я даже не ищу его), вы должны поместить свой загрузочный файл меньше в корневую папку stylesheets. В противном случае я не смог бы скомпилировать эти файлы.
4) Я указал строку html относительно css:
<link rel="stylesheet" media="screen" href="@routes.Assets.at("stylesheets/bootstrap.min.css")">
5) Я запускаю play run
, и все работает.
Изменить. Как кто-то спросил: есть ли способ установить плагин lessc без установки jsnode и npm?