【问题标题】:LESS compilation on Play 2 is seriously slowPlay 2 上的 LESS 编译速度非常慢
【发布时间】:2015-03-27 02:19:08
【问题描述】:

在我新安装的 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。

【问题讨论】:

  • 你的文件少了多少?每个有多大?
  • 我的 LESS 设置非常简单。 _reset.less (.5k) _desktop.less (13k)、_tablet.less (10k)、_mobile.less (8k)、_sprites.less (25k) 文件。将所有内容放在一起的 all.less (.3k) 文件。而已。生成的 css 文件为 53k。
  • 我认为可能有一种方法可以告诉 Play 使用原生的 less 应用程序,而不是通过 Rhino 解释的应用程序。但我找不到任何文档。 :(
  • 我也注意到了这个问题。我正在考虑切换到使用 Sass Ruby gem 和 sass 命令的 play-sass 插件,这已经够糟糕的了。要么,要么我正在考虑编写我自己的使用lessc 的插件(假设我无法通过James Ward 提到的任何配置参数弄清楚如何做到这一点......我想是时候抓取源代码了)。无论如何,有一个实验设置可以帮助你。请参阅playframework.org/documentation/2.0.1/Assets 的底部,其中讨论了incrementalAssetsCompilation 设置。

标签: playframework playframework-2.0 less


【解决方案1】:

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

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

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

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

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

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

【讨论】:

    【解决方案2】:

    这将大大减少编译时间:

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

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

    【讨论】:

      【解决方案3】:

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

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

      JsEngineKeys.engineType := JsEngineKeys.EngineType.Node
      

      构建.sbt。

      Reference #1 - Reference #2

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2016-05-21
        • 2021-12-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-02-25
        • 1970-01-01
        相关资源
        最近更新 更多