我一直在使用Play v2.2.1开始一个新的Play项目,并且很难让Google Closure编译器正确处理goog.provide和goog.require语句。我的所有Javascript文件都在app / assets文件夹中,并且正在使用Play的反向路由正确提供。但是,每当我尝试使用goog.require(_namespace_)
时,我都会收到编译错误“尚未提供所需的名称空间名称空间”。无论我是链接到带有require的文件,还是链接到我的视图模板中的require和提供.js文件,都会发生这种情况。但是,如果我链接到需求文件的缩小版本,则不会发生。
在大多数情况下,闭包编译器似乎正在工作;例如,.min.js文件确实存在(即使它们实际上似乎没有缩小,但这可能是一个单独的问题)。我没有在Play项目中更改任何构建设置。
Play 2.2.x的Play documentation on using the Google Closure compiler没有使用goog.require()
和goog.provide()
直接引用Javascript依赖项。但是,它确实提供了使用RequireJS来完成工作的链接。有没有办法利用Closure编译器的require系统?
作为免责声明,我对Closure编译器不太熟悉。我已经在工作中使用它,我们将所有Javascript简化为一个文件,所以我所知道的基本上是我期望看到的结果。我希望Play能够处理大部分使一切“正常工作”的肮脏工作,但这似乎并不像我希望的那样简单,几个小时后我没有成功解决问题淘网。
答案 0 :(得分:2)
Benn McCann根据我很久以前在游戏邮件列表上发布的一些内容做了一个plovr插件,根据我记得因为这个确切的问题而创建的,也许你可以使用它:{{3 }}