介紹
調試是開發中必不可少的一個過程,electron分為主進程和渲染進程,所以需要有分別調試這兩個進程
渲染進程調試
electron渲染進程的調試跟web開發的調試過程差不多一樣,因為這個進程相當於Chromium 的一個窗口,在開發環境中可以設置:win.webContents.openDevTools() 來打開devtools來調試代碼。

接下來就可以對渲染進程進行調試,

vue-devtools
通常我們是使用vue+electron的模式進行開發,而在平時vue開發中,我們通常使用vue-devtools進程代碼的調試,那么在electron中,我們就要想辦法去加載vue-devtools這個插件
在electron-builder這個模板中提供了installVueDevtools這個模塊去加載vue-devtools
import {installVueDevtools } from "vue-cli-plugin-electron-builder/lib"
...
app.on("ready",()=>{
if(isDevelopment && !process.env.IS_TEST) {
// Install Vue Devtools
try {
await installVueDevtools()
}catch (e) {
console.error('Vue Devtools failed to install:', e.toString())
}
}
})
然而這個installVueDevtools需要上網,才能下載vueDevtool到本地,所以我們需要另外一個版本,經過多方面的嘗試,得到如下這種辦法,首先下載在git下載vue-devtools編譯后,把編譯的文件放到項目如圖:

然后在通過electron的session模塊加載
session.defaultSession.loadExtension(
path.resolve(__dirname, "../shell-chrome")
).catch(e => {
console.error("Vue Devtools failed to install:", e.toString());
}).then(e => console.log(e));
效果如下

主線程調試
需要配置vscode,打開vscode的debug 添加 配置
{
"version": "1.3.0",
"configurations": [
{
"name": "Debug Main Process",
"type": "node",
"request": "launch",
"cwd": "${workspaceFolder}",
"runtimeExecutable": "${workspaceFolder}/node_modules/.bin/electron",
"program": "${workspaceFolder}/src/main.ts",
"protocol": "inspector",
"args" : ["."]
}
]
}
不過有點坑的是不支持import的需要是用require才行不然會報錯:

所以基本上我是使用console.log來調試
總結
electron的調試基本是這些,雖然很簡單,但是也有不少人不知道的,特別是vue-devtools
