vue 程式碼調試神器

一、序

工欲善其事,必先利其器。作為一名資深程式設計師,相信必有一款調試神器相伴左右,幫助你快速發現問題,解決問題。作為前端開發,我還很年輕,也喜歡去搗鼓一些東西,借著文章的標題,先提一個問題:大家目前是怎麼調試前端?哈哈,我也大膽的猜測下,可能有這麼幾種:

不調試,直接看程式碼找問題
console.log 列印日誌
用 Chrome Devtools 的 debugger 來調試
用 VSCode 的 debugger 來調試
以上方式我相信大家基本都用過,不同的調試方式效率和體驗是不一樣的,我現在基本都是用 VSCode debugger 來調試,效率又高、體驗又爽。

今天我就來介紹下怎麼用 VSCode調試網頁。

二、實踐

還是以之前的小demo來做演示,首先我們需要在項目根路徑下添加一個

.vscode/launch.json

的配置文件,其內容如下:

{
“configurations”: [
{
“name”: “Launch”,
“request”: “launch”,
“type”: “pwa-chrome”,
“url”: “//localhost:8080“,
“webRoot”: “${workspaceFolder}”,
“sourceMapPathOverrides”: {
“villiam://src/“: “${workspaceFolder}/src/
}
}
]
}

創建了一個調試配置,類型是 chrome,並指定調試的 url 是開發伺服器的地址。

因為 Vue 我們寫的是 SFC(single file component) 格式的文件,需要 vue-loader 來把它們分成不同的文件,所以路徑單獨映射一下,才能對應到源碼位置。

所以調試配置里需要加個

sourceMapPathOverrides:

“sourceMapPathOverrides”: {
“villiam://src/“: “${workspaceFolder}/src/
}

那麼這裡面的值是怎麼來的呢?首先workspaceRoot 是 vscode 提供的環境變數,就是項目的跟路徑,這樣一映射之後,地址不就變成本地的文件了么?那麼在本地文件中打斷點就能生效了。那左邊的key值是怎麼來的呢?其實這個路徑是可以配置的,這其實就是 webpack 生成 sourcemap 的時候的文件路徑,可以通過 output.devtoolModuleFilenameTemplate 來配置:

configureWebpack:{
output:{
devtoolModuleFilenameTemplate:’villiam://[resource-path]’
}
}

以上其實我們已經把調試的配置全部完成了,接下來我們就一起來見證下奇蹟~

啟動:

file

會先打開瀏覽器:

file

點擊按鈕後,進入斷點:

file

不管你是想調試 Vue 業務程式碼,還是想看 Vue 源碼,體驗都會很爽的。

三、小結

今天給大家分享的是一個調試小技巧,方便我們查找定位問題用,希望在工作中提升你的效率。

其實React 的調試相對簡單,只要添加一個 chrome 類型的 dubug 配置就行,Vue 的調試要麻煩一些,要做一次路徑映射。

有興趣的可以走一波。

歡迎關注file

Tags: