在我的一个Play2.4应用程序(Scala)中,我有通过Twirl(模板引擎)生成的JS文件,因此我可以使用内部变量。
在Prod中有没有一种方法可以缩小这些JS文件?
答案 0 :(得分:1)
您可以尝试的一种方法是创建一个自定义Play过滤器,它使用基于Java的压缩器来实现JavaScript。这是我发现的一个例子: https://github.com/yui/yuicompressor/blob/master/src/com/yahoo/platform/yui/compressor/JavaScriptCompressor.java
另一种方法是使用一个模板,将生成的JS传递给上面的类。
答案 1 :(得分:1)
您可以使用sbt-uglify。首先,您需要将插件添加到plugins.sbt文件中:
addSbtPlugin("com.typesafe.sbt" % "sbt-uglify" % "1.0.3")
接下来,修改项目build.sbt文件并启用sbt-web:
lazy val root = (project in file(".")).enablePlugins(SbtWeb)
声明uglify sbt-web插件执行:
pipelineStages := Seq(uglify)
这将使构建在制作发布包(使用activator dist)时丑化您的javascript资产。 如果您想在开发环境中测试uglify,请改用以下行:
pipelineStages in Assets := Seq(uglify)
最后,您需要修改twirl模板中加载javascript资源的方式。而不是@ routes.Assets.at(“something.js”),现在使用@ routes.Assets.versioned(“something.js”)