Source map

JavaScript腳本正變得越來越複雜。大部分源碼(尤其是各種函數庫和框架)都要經過轉換,才能投入生產環境。

常見的源碼轉換,主要是以下三種情況:

  (1)壓縮,減小體積。比如jQuery 1.9的源碼,壓縮前是252KB,壓縮後是32KB。

  (2)多個文件合併,減少HTTP請求數。

  (3)其他語言編譯成JavaScript。最常見的例子就是CoffeeScript。

這三種情況,都使得實際運行的代碼不同於開發代碼,除錯(debug)變得困難重重。

通常,JavaScript的解釋器會告訴你,第幾行第幾列代碼出錯。但是,這對於轉換後的代碼毫無用處。舉例來說,jQuery 1.9壓縮後只有3行,每行3萬個字符,所有內部變量都改了名字。你看着報錯信息,感到毫無頭緒,根本不知道它所對應的原始位置。

這就是Source map想要解決的問題。

簡單說,Source map就是一個信息文件,裏面儲存着位置信息。也就是說,轉換後的代碼的每一個位置,所對應的轉換前的位置。

有了它,出錯的時候,除錯工具將直接顯示原始代碼,而不是轉換後的代碼。這無疑給開發者帶來了很大方便。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章