我无法理解使用谷歌闭包编译器API服务的基本流程。我只想解决一些问题:
据我了解,编译器的一个特性是它解析“require”语句,并在输出中包含必要的代码。例如,如果我转到他们提供的online UI tool并在输入框中输入以下内容:
goog.require("goog.dom");
goog.dom.getElement("test");
并按“编译”,我希望能够获得足够的谷歌闭包代码来执行此代码段。相反,我只是得到同样的东西(减去空白)。我不理解的是什么?
最后,google的编译器服务对你发送的文件有200k的限制。我正在使用一个名为Minify的PHP软件包,它允许你发送一个文件列表,这些文件一次一个地通过服务发送,并且可能这是谷歌期望你处理200k限制的方式。编译器应该检查,比如说,没有任何私有变量在任何地方被公开访问,这似乎暗示它必须知道列表中的所有文件,以确保在文件中定义的类文件B中没有违反A.是这种情况吗?服务是否以某种方式记住每个文件的解析,将其保存在内存中,并交叉检查所有内容?或者我的理解是否有缺陷?
谢谢,伙计们!
答案 0 :(得分:2)
如果您从下拉列表中选择“Closure Library”以“添加网址”,则会添加它将添加的配置:
// @ use_closure_library=true
这将使web服务包含“goog.require”的源,闭包库本身可以满足这些源。如果您的代码必须满足您的任何goog.requires,则必须手动包含该URL。
在某些时候,您可能想要运行自己的编译服务,您可能会发现Michael Bolin的Plovr项目很有用:
答案 1 :(得分:0)
我创建了一个名为Shoreline的Google Closure项目模板。它包含在本地创建,测试和编译Closure项目所需的一切。没有代码大小限制,也没有正常运行时间问题。