1

我想修改一个 javascript 应用程序以供我使用*。问题是,js 是用 Google Closure Compiler 编译的。显然,我应该修改源(在存储库中可用),然后重新编译。

这是我第一次接触 GCC。我浏览了文档并得出结论,关键是通过关键字使用deps.jsgoog.addDependency中提到的来源。所以我建立了一个 HTML 文件并引用了所有的来源。加载这个文件我得到 118 ReferenceError: goog is not defined在 firebug 控制台中的错误。

然后我阅读了更多内容,发现该应用程序已在kbuild的帮助下编译,并且它使用配置文件config.kb将正确的参数发送到 GCC。这个文件,表明第一个文件应该是loader.js,所以我重新排序了<script>标签并移动了

<script type="text/javascript" src="./eightball/loader.js"></script>

到顶部。但同样的错误被抛出。那么,缺少什么?

* 许可证是 MIT,权利没有问题。

4

1 回答 1

2

首先,该应用程序似乎正在使用Google Closure,这是由 Google 开发的 JavaScript 库。

这(当然)与 Google Closure Compiler完全不同,Google Closure Compiler是一个 JavaScript 缩小和混淆引擎(该死的这些大公司和他们对所有东西命名的追求)。

这意味着您应该在列出您的部门之前包含 Closure 引导程序;这就是应用程序本身所做的,就像在主视图中一样,它会调用game_jshelper ,如果应用程序尚未编译,它会包含Closure的文件。base


TLDR:

尝试/javascripts/closure/closure/goog/base.js先包含该文件。

于 2013-04-25T18:48:44.087 回答