簡體   English   中英

訪問源映射以調試Closure編譯器?

[英]Access source map for debugging Closure Compiler?

我正在熨燙我的代碼庫,以便可以在Google的閉包編譯器上使用ADVANCED_OPTIMIZATIONS進行編譯。

在正確設置此任務所需的調試環境(源映射文件,chrome,包裝已編譯的js文件)之后,我偶然發現了try catch問題。 似乎我的代碼庫中對try / catch語句的廣泛使用對我產生了反作用。

在幾乎所有方法和函數上,我都使用典型的try {} catch(e){ss.error(e);}語句,其中ss.error()是通用的錯誤處理程序,根據環境的不同,它可以打印出調試內容或報告支持例外...

在熨燙我的代碼庫的過程中,當我遇到需要修復的錯誤時,發生的事情是,它沒有讓Chrome報告有問題的文件和行,而是指向錯誤處理程序ss.error()。 因此,我無法回溯問題。 但是,ss.error()函數確實會打印出問題源於:

錯誤! Db處的type:TypeError(/jsc/compiled.js:547:246)msg:無法調用未定義源的方法“ ka”:

在收到這些類型的錯誤之后,我必須執行兩個步驟:1.在547 char 246行上查找已編譯的代碼,並嘗試找出未編譯代碼中的哪一部分是指... 2.找到后,刪除try / catch塊,這樣我就可以直接更清楚地了解導致錯誤的原因...

我必須說我對此工作流程不滿意,需要找到一種替代方法,既可以讓我正確捕獲異常並調試我的已編譯和未編譯代碼,又可以保持頭腦清醒=)

我正在考慮使用Line:CharPosition信息查詢源地圖並讓ss.error()函數映射到未編譯的源代碼...

想法?

作為閉包編譯器的一部分,SourceMaps有一個Java接口。 還有各種修復狀態的JS實現。 我在這里嘗試使它們的鏈接保持最新:

http://code.google.com/p/closure-compiler/wiki/SourceMaps

對於Java實現,您只需使用SourceMapConsumerFactory加載源地圖即可,該接口非常簡單。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM