我使用Play框架2.3.6和Webjars来处理Web lib依赖项。 也就是说,我的build.sbt包含类似" org.webjars" %" angularjs" %" 1.2.26"。 为了解释我的Javascript源代码,我将pipelineStages:= Seq(rjs,uglify,digest,gzip)添加到了我的build.sbt。
现在,在Play' stage'或者' dist'看起来所有Javascript文件都被丑化了,也就是来自Webjar库的文件 [info] Uglify2文件:/target/web/rjs/build/lib/angularjs/angular.js
我原本预计来自外部Webjar库的资源不会受到影响,因为已经有一个缩小版本。 一个问题是uglify过程需要太长时间。 如何加快丑化进程?
答案 0 :(得分:1)
有两种方法可以加快Javascript构建步骤:
在运行export SBT_OPTS="$SBT_OPTS -Dsbt.jse.engineType=Node"
之前安装node.js并设置activator
。使用node.js而不是默认的Javascript引擎可以提供非常显着的加速。有关详细信息,请访问:Migration to play 2.3,请参阅 sbt-web
自定义构建步骤,例如
RjsKey.optimize := "none"
includeFilter in uglify := GlobFilter("myjs/*.js"),
您可以在这些插件的github网站上找到有关这些选项的更多详细信息:
答案 1 :(得分:1)
即使sbt-uglify文档说excludeFilter应该排除webjars和公共文件夹,但事实并非如此。
按照马丁的反应定制部分,除了他的女仆打字错误,给RjsKeys添加一个S:
RjsKeys.optimize := "none"