Play框架2.1.x将无法编译Twitter Bootstrap 3 LESS

arc*_*e86 12 less twitter-bootstrap playframework-2.1 twitter-bootstrap-3

我正在尝试使用LESS文件使用Twitter Bootstrap 3设置Play框架2.1.1.

我已经把bootstrap 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")
)
Run Code Online (Sandbox Code Playgroud)

我无法编译Bootstrap,我得到以下内容:

Expected )
In ...\app\assets\stylesheets\bootstrap\mixins.less at line 0.
Run Code Online (Sandbox Code Playgroud)

这个问题似乎来自于用分号分隔的mixin参数.当我用逗号替换这些分号时,它可以正常工作.

Play LESS编译器是否需要逗号?我是否需要用逗号替换每个分号,还是可以配置Play LESS编译器?

谢谢

编辑:

这里有一个官方问题:https://github.com/playframework/playframework/issues/1423

似乎我需要等待使用新版LESS编译器升级Play.我将同时使用外部编译器.

Fre*_*d K 5

这是来自github的家伙mica16发布的临时解决方案:

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")
Run Code Online (Sandbox Code Playgroud)

(确保通过线跳将它们分开)

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)
Run Code Online (Sandbox Code Playgroud)

由于我无法定义的原因(我现在甚至不寻求它),您应该将您的bootstrap较少的文件直接放在stylesheets根文件夹中.否则,我无法编译那些文件.

4)我指定了关于css的html行:

<link rel="stylesheet" media="screen" href="@routes.Assets.at("stylesheets/bootstrap.min.css")">
Run Code Online (Sandbox Code Playgroud)

5)我跑play run,整个工作.

编辑 - 有人问:有没有办法在不安装jsnode和npm的情况下安装lessc插件?