如何在Play 2.0中启用Closure Compiler的缩小功能

时间:2012-03-21 13:17:31

标签: google-closure-compiler playframework-2.0

根据此处的文档:https://github.com/playframework/Play20/wiki/AssetsGoogleClosureCompiler它说:

  

应用程序/资产中存在的任何JavaScript文件都将由Google Closure编译器解析,检查错误和依赖关系,如果在构建配置中激活则缩小。

但是我无法找到如何在构建配置中设置它,我尝试添加代码:

val main = PlayProject(appName, appVersion, mainLang = SCALA).settings(
    javascriptEntryPoints <<= baseDirectory(base =>
        base / "app" / "assets" / "javascripts" ** "*.js"
    )
)
在build.scala中

但是我找不到任何缩小的JavaScript文件。

以下是我尝试过的步骤:

  1. 在build.scala

  2. 中添加上述代码
  3. 在app / assets / javascripts

  4. 中创建一个JavaScript文件
  5. 在Play控制台中输入“compile”,注意在app / assets / javascripts或public / javascripts中没有生成缩小的JavaScript文件

  6. 但是,我注意到如果我写了一些无效的JavaScript,我会得到一条错误消息(例如在127.0.0.1:9000 - 编译错误),所以看起来封闭编译器正在成功检查错误,但是我我不知道怎么做缩小。

    关于缩小的问题,是否可以在开发模式下使用常规(非缩小)JavaScript文件 ,但在生产中,使用缩小版本?

    由于

1 个答案:

答案 0 :(得分:3)

Play在编译后不会将资产置于公共资源或资产文件夹中。编译后的资产(JS,Less或CoffeeScript)放在:

<强> /目标/阶[版] / resource_managed /主/...

然后播放将创建这些文件的映射,以便您可以像处理/ public文件夹一样处理资产。

需要注意的一点是,在开发模式下,编译不会将文件输出到此目录中。当您使用浏览器访问localhost:9000路径时,将执行最终编译,然后将文件输出到目录。

要回答缩小版本(并查看如何更改构建配置的更好示例),我建议在使用Less in Play时查看Yann Simon的帖子。它在概念上与JS相同,他也有一个很好的例子,说明如何根据Play模式在非缩小/缩小版本之间切换:

https://plus.google.com/u/0/108788785914419775677/posts/QgyUF9cXPkv