我已經爲我的web應用程序編寫了兩步編譯過程。首先,我將CoffeeScript文件編譯成JavaScript文件[1]。然後,JavaScript文件(來自CoffeeScript的文件和外部的文件,如從AngularJS模板生成的grunt-angular-templates
)由Google Closure Compiler [2]編譯爲單個最小化文件。合併兩個編譯步驟的源映射
CoffeeScript ---[1]---> JavaScript --[2]--\
\->
AngularJS templates --> JavaScript ----------> single minimized JS file
/->
other JS files -------/
步驟[1]和[2]都產生源圖。
是否可以將這些源地圖組合成一個單獨的源地圖,使我可以從運行最小化JS文件的Web瀏覽器調試CoffeeScript文件?
換句話說:讓說源地圖[1]由函數表示:
g(position in JavaScript) = position in minimized JS
I:
f(position in CoffeeScript) = position in JavaScript
和源地圖[2]由函數表示'd想要得到由功能組合表示的源地圖:
h(position in CoffeeScript) = g(f(position in CoffeeScript)) =
= position in minimized JS
那麼,在我的使用案例中,我並不關心中間文件,它只是一個副產品......無論如何,你的回答至少告訴我,這個想法在技術上是可行的,目前實現源地圖,沒有任何工具可以完全執行此操作。謝謝。 – liori
看起來像'Grunt'可以處理2階段映射,至少在通過'uglify'傳遞單個編譯的'Coffeescript'的情況下 - https://github.com/gruntjs/grunt-contrib-uglify – hpaulj
從側邊欄:http://stackoverflow.com/questions/15964826 – hpaulj