3

我正在使用 Play framework 2.3.6 和 Webjars 来获取 web lib 依赖项。也就是说,我的 build.sbt 包含类似“org.webjars”%“angularjs”%“1.2.26”的内容。为了丑化我的 Javascript 源代码,我在 build.sbt 中添加了 pipelineStages := Seq(rjs, uglify, digest, gzip)。

现在,当运行 Play 的“stage”或“dist”任务时,看起来所有 Javascript 文件都被丑化了,也就是说,来自 Webjar 库的文件也是如此。
[信息] Uglify2 文件:/target/web/rjs/build/lib/angularjs/angular.js

我本来希望来自外部 Webjar 库的资源保持不变,因为已经有一个缩小版本。一个问题是 uglify 过程花费的时间太长。如何加快丑化进程?

4

2 回答 2

1

尽管 sbt-uglify 文档说 excludeFilter 应该排除 webjars 和公用文件夹,但它没有。

按照 Martin 的响应定制部分,除了他的 maid y 错字,在 RjsKeys 中添加一个 S:

RjsKeys.optimize := "none"
于 2015-02-21T13:38:37.103 回答
1

有两种方法可以加快 Javascript 构建步骤:

  • 安装 node.js 并export SBT_OPTS="$SBT_OPTS -Dsbt.jse.engineType=Node"在运行之前设置activator。使用 node.js 而不是默认的 Javascript 引擎可以显着提高速度。更多细节可以在这里找到:Migration to play 2.3,见关于sbt-web 的部分

  • 自定义构建步骤,例如

    • 通过添加到 build.sbt 禁用缩小:RjsKey.optimize := "none"
    • 通过添加到 build.sbt 来限制丑化:例如includeFilter in uglify := GlobFilter("myjs/*.js"),

您可以在这些插件的 github 站点上找到有关选项的更多详细信息:

sbt-丑化

sbt-rjs

于 2014-11-09T19:19:10.790 回答