10

在我新安装的 Play 2 中,LESS 编译真的很慢。即使在不需要直接编译的文件上放置“_”后,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。

4

3 回答 3

8

我写了一篇关于这个问题的小调查。你可以在这里找到它。

底线:通过切换到 Sass,我获得了更快的性能。这并不难。使用 Play-Sass SBT 插件,如果您使用的是 Bootstrap,请使用sass-twitter-bootstrap 项目中的 SASS Bootstrap 文件。

通过命令预编译 LESS 文件lessc是另一种解决方案,而且速度非常快。

假设您的项目使用 Bootstrap,使用预编译的 Bootstrap,而不是 Bootstrap LESS 文件,也是一个巨大的胜利,因为当其中一个文件发生更改时,Play LESS 编译器会重新编译所有LESS 文件,而 Bootstrap 相当大。但是,对于我们中的一些人来说,使用预编译的 Bootstrap 很不方便......

使用 Play 2.0 基于 Rhino 的按需 LESS 编译是最慢的选择。事实上,猪慢。并忽略我对incrementalAssetsCompilation. 它已记录在案,但似乎不在 2.0.x 代码库中。

编辑(2013 年 5 月 22 日)Jonathan Parsons已经将一个play-lessc插件放在一起,该插件使用该lessc命令来编译 LESS 文件。它可以显着减少 Play 项目中的 LESS 编译时间。见https://github.com/jmparsons/play-lessc

于 2012-12-12T22:38:41.717 回答
2

这将大大减少编译时间:

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

它使 Play 在运行 JavaScript 时使用 Node 而不是 Rhino。

于 2015-03-23T12:10:08.493 回答
2

从 Play Framework 2.3 开始,你可以使用 node.js 作为默认的 JavaScript 引擎,用于少编译、js lint、CoffeeScript 等。

下载并安装 node.js ( https://nodejs.org ) 库并放置

JsEngineKeys.engineType := JsEngineKeys.EngineType.Node

构建.sbt。

参考 #1 - 参考 #2

于 2015-03-26T18:19:08.983 回答