12

我正在尝试使用 LESS 文件使用 Twitter Bootstrap 3 设置 Play framework 2.1.1。

我已将引导 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 编译器?

谢谢

编辑 :

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

看来我需要等待使用新版本的 LESS 编译器升级 ​​Play。同时我将使用外部编译器。

4

1 回答 1

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")

(确保通过换行将它们分开)

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)

由于我无法定义的原因(我现在什至不寻找它),您应该将引导较少的文件直接放在样式表根文件夹中。否则,我无法编译这些文件。

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

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

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

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

于 2013-08-13T09:56:51.847 回答