我正在整理我的代碼庫,以便它可以在google的閉包編譯器上使用ADVANCED_OPTIMIZATIONS進行編譯。訪問用於調試Closure Compiler的源代碼映射?
正確設置此任務所需的調試環境(源映射文件,chrome,包裝已編譯的js文件)後,我偶然發現了try catch問題。看來,在我的代碼庫中大量使用try/catch語句已經讓我不滿。在幾乎所有的方法和函數中,我使用了一個典型的try {} catch(e){ss.error(e);}語句,其中ss.error()是一個通用的錯誤處理程序,依賴於環境或者打印出調試東西或報告例外...
在熨燙我的代碼庫的過程中,當我得到一個錯誤,我需要修復,會發生什麼是,而不是讓Chrome報告有問題的文件和線,它指向到錯誤處理程序ss.error()。因此,讓我無法回溯問題。然而,ss.error()函數打印的問題源自於:
錯誤!類型:類型錯誤在DB(/jsc/compiled.js:547:246)消息:無法調用 法「KA」未定義來源:
後,我得到這些類型的錯誤,我必須做兩步: 1.在第547行char 246上編譯代碼,並試圖找出我的未編譯代碼中涉及哪個部分... 2.找到它後,刪除try/catch塊,以便直接和更多清楚地看到是什麼造成了錯誤...
我必須說我對這個工作流程不滿意,需要找到一個替代方案,這兩個方法都能讓我正確地捕捉異常並調試我編譯和未編譯的代碼,同時保持心智健全= )
我想以某種方式使用線:CharPosition信息查詢源映射並有ss.error()函數做映射到我的未編譯源代碼
想法?
您是否在編譯後的js文件的底部包含對源代碼映射的引用:'// @ sourceMappingURL = src/scripts.source.map.js'?您是否查看了[JavaScript源地圖簡介](http://www.html5rocks.com/en/tutorials/developertools/sourcemaps/)? –
不是你正在尋找的答案,但「調試」標誌加上「formatting = PRETTY_PRINT」使調試比處理源地圖更容易。 –
另外,不是您正在尋找的解決方案,但您也可以讓您的錯誤處理程序捕獲異常的堆棧跟蹤。 – John