2013-04-25 88 views
1

還有a javascript application我想修改我的使用方法*。問題是,js是用Google Closure Compiler編譯的。顯然,我應該修改源代碼(可以在存儲庫中使用),然後重新編譯。來自Closure編譯器的Untangling JS Source

這是我第一次遇到GCC。我瀏覽了文檔並得出結論,關鍵是通過goog.addDependency關鍵字使用deps.js中提到的來源。 所以我建立了一個HTML文件並引用了所有的源代碼。加載這個文件我得到了118 ReferenceError:沒有定義goog螢火蟲控制檯的錯誤。

然後我再讀一遍,發現應用程序已經在kbuild的幫助下編譯,並且它使用配置文件config.kb將正確的參數發送給GCC。此文件,表示第一個文件應該是loader.js,所以我重新排序<script>標籤和移動

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

頂端。但同樣的錯誤被拋出。那麼,缺少什麼?

*許可證是麻省理工學院,沒有權利問題。

+0

查看https://developers.google.com/closure/library/docs/closurebuilder – Matt 2013-04-25 18:57:48

+0

@Matt你只是及時刪除了你的答案,以鴨得到+1;)感謝您的答案和這個指針。 – 2013-04-25 19:00:20

+0

哈哈,如果您發現它有用,我可以將其刪除,但我認爲我會誤解您的問題,並且您已經完成了我在答案中所說的內容,而是考慮如何使用Closure Compiler來縮小代碼。 ..在這種情況下,上面的鏈接是你需要的:)。 – Matt 2013-04-25 19:02:59

回答

2

首先,它似乎應用程序使用Google Closure,這是一個由Google開發的JavaScript庫。

這是(當然的),完全不同於Google Closure Compiler,這是一個JavaScript縮小和模糊引擎(宕這些大公司和他們的追求,一切的名字相同)。

這意味着你應該在之前包括你已經上市的Closure引導;這是應用程序本身所做的,如main view,它調用game_js helper,其中includes 文件的Closure如果應用程序尚未編譯。


TLDR:

嘗試包括/javascripts/closure/closure/goog/base.js文件第一。