javascript - Play 2.2.1 中需要 Google Closure : goog.

标签 javascript playframework-2.0 google-closure-compiler

我一直在使用 Play v2.2.1 开始一个新的 Play 项目,但很难让 Google Closure 编译器正确处理 goog.provide 和 goog.require 语句。我的所有 Javascript 文件都位于 app/assets 文件夹中,并且正在使用 Play 的反向路由正确提供。但是,每当我尝试使用 goog.require(_namespace_) 时,都会收到编译错误“尚未提供所需的命名空间命名空间”。无论我仅链接到具有 require 的文件还是同时链接到 View 模板中的 require 和提供 .js 文件,都会发生这种情况。但是,如果我链接到所需文件的缩小版本,则不会发生这种情况。

在大多数情况下,闭包编译器似乎正在工作;例如, .min.js 文件确实存在(即使它们实际上似乎没有被缩小,但这可能是一个单独的问题)。我没有更改 Play 项目中的任何build设置。

Play documentation on using the Google Closure compiler Play 2.2.x 不会直接引用 goog.require()goog.provide() 的 Javascript 依赖项。不过,它确实提供了使用 RequireJS 完成这项工作的链接。没有办法利用闭包编译器的 require 系统吗?

作为免责声明,我对 Closure 编译器不是很有经验。我在工作中使用过它,我们将所有 Javascript 压缩到一个文件中,所以我所知道的基本上就是我期望看到的结果。我希望 Play 能够解决大部分让一切“正常工作”的肮脏工作,但它似乎并不像我希望的那么简单,几个小时后我还没有成功解决问题搜索网络。

最佳答案

Benn McCann 根据我很久以前在 play 邮件列表上发布的一些内容制作了一个 plovr 插件,据我所知,该插件是由于这个确切的问题而创建的,也许您可​​以使用它:https://github.com/benmccann/play-plovr-plugin

关于javascript - Play 2.2.1 中需要 Google Closure : goog.,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20735950/

相关文章:

javascript - 为什么 Closure Compiler 无法识别自执行匿名函数中的类型声明?

javascript - 将项目添加到 Observable Array Knockout

javascript - 如何使用 React-Redux 检查登录状态?

javascript - Firebase 函数如何正确处理错误

javascript - "inline-style"- 内容安全策略和 Javascript 出错

java - 在 SBT/Play 中的构建定义内运行 Java 方法

javascript - Google Closure Compiler 对 let 声明发出 JSC_CONSTANT_REASSIGNED_VALUE_ERROR 警告

playframework-2.0 - 多选选择 - 玩 2.0?

windows-services - Play 2.0-服务器重新启动后作为Windows服务启动

google-closure - 如何为 Google Closure Compiler 自动生成 extern