[webpack] devtool配置對比

https://www.cnblogs.com/hhhyaaon/p/5657469.html

eval

每個模塊被轉(zhuǎn)化為字符串,在尾部添加//# souceURL(指明eval前文件)后,被eval包裹起來

source-map

最原始的source-map實現(xiàn)方式,打包代碼的同時生成一個sourcemap文件,并在打包文件的末尾添加//# souceURL,注釋會告訴JS引擎原始文件位置

hidden-source-map

打包結(jié)果與source-map一致,但是.map文件結(jié)尾不顯示//# sourceMappingURL

inline-source-map

為打包前的每個文件添加sourcemap的dataUrl,追加到打包后文件內(nèi)容的結(jié)尾;此處,dataUrl包含一個文件完整 souremap 信息的 Base64 格式化后的字符串

eval-source-map

將每個模塊轉(zhuǎn)化為字符串,使用eval包裹,并將打包前每個模塊的sourcemap信息轉(zhuǎn)換為Base64編碼,拼接在每個打包后文件的結(jié)尾

cheap-source-map

source-map,但不包含列信息,不包含 loader 的 sourcemap,(譬如 babel 的 sourcemap)

cheap-module-source-map

不包含列信息,同時 loader 的 sourcemap 也被簡化為只包含對應(yīng)行的。最終的 sourcemap 只有一份,它是 webpack 對 loader 生成的 sourcemap 進行簡化,然后再次生成的

這么多模式,到底使用哪個?

開發(fā)環(huán)境推薦:
cheap-module-eval-source-map
生產(chǎn)環(huán)境推薦:
cheap-module-source-map

相關(guān)解釋:

  • 大部分情況我們調(diào)試并不關(guān)心列信息,而且就算 sourcemap 沒有列,有些瀏覽器引擎(例如 v8) 也會給出列信息,所以我們使用 cheap 模式可以大幅提高 souremap 生成的效率。

  • 使用 module 可支持 babel 這種預(yù)編譯工具(在 webpack 里做為 loader 使用)。

  • 使用 eval 方式可大幅提高持續(xù)構(gòu)建效率,參考webapck devtool速度對比列表,這對經(jīng)常需要邊改邊調(diào)的前端開發(fā)而言非常重要
    [圖片上傳失敗...(image-1e848d-1648565075712)]

  • 直接將sourceMap放入打包后的文件,會明顯增大文件的大小,不利于靜態(tài)文件的快速加載;而外聯(lián).map時,.map文件只會在F12開啟時進行下載(sourceMap主要服務(wù)于調(diào)試),故推薦使用外聯(lián).map的形式。

相關(guān)閱讀

webpack sourcemap 選項多種模式的一些解釋
webpack 官方文檔(devtool)
JavaScript Source Map 詳解

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容