當我們在開發Vue應用時,經常會遇到一些bug,這些bug往往很難找到原因,特別是在生產環境下。這時候,Sourcemap就能派上用場了。
Sourcemap是什么?顧名思義,Sourcemap源映射,就是將webpack打包后的代碼,映射回開發時的源碼。
// 示例代碼,未經壓縮 function add(a, b) { return a + b; } add(1, 2);
對于上面的js代碼,如果被webpack打包后,我們往往看到的是經過壓縮和優化的代碼,如下面所示:
// 經過webpack打包壓縮的代碼 function o(n,t){return o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,t){n.__proto__=t}||function(n,t){for(var e in t)t.hasOwnProperty(e)&&(n[e]=t[e])},o(n,t)} o({"1":function(module,exports){},})
這是因為webpack在打包時,往往會把代碼進行壓縮和優化,使代碼體積更小,運行速度更快。但是這樣一來,當我們在生產環境下遇到錯誤時,就不太好排查了,因為我們無法明確知道錯誤出在哪里。
因此,Sourcemap就被發明出來了。通過Sourcemap還原Vue的源碼,可以幫助我們快速找到錯誤產生的原因,進而解決問題。
在Vue的開發中,我們可以開啟Sourcemap來還原Vue的源碼。我們只需要在webpack中配置以下參數即可:
module.exports = { devtool: 'cheap-module-eval-source-map', // ... }
通過上面的配置,webpack將會在打包時生成Sourcemap文件,而瀏覽器在出錯時,將會自動加載對應的Sourcemap文件,從而還原出Vue的源碼。
總之,Sourcemap對于我們排查bug是非常重要的,能夠幫助我們快速定位錯誤以及解決問題,因此在開發中一定要注意開啟Sourcemap選項。