Electron踩坑系列——【二】调试

2020-06-12  本文已影响0人  全栈路上

【本系列文章基于Electron 9.0.3 版本,开发平台为windows】

Electron 应用进程分为主进程和渲染进程,其底层实现分别对应于 Node.js 和 Chromium。所以调试 Electron 应用的方式也需要区分不同进程。本文将汇总了几种常见的调试方式,使用者可以根据习惯自由选择。

1. 主进程调试

主进程调试可以使用 chrome的inspect模式 或者 VS CODE开发工具中的调试选项

"start": "electron --inspect ."
image

点击下方的inpect进入调试界面,初次进入需要添加源码路径,如下图:

image

添加完成后,顶部有个确认操作,确认之后才是真正的添加成功。可调试的js文件都有绿色的小点进行标识,加入断点就可以正常调试。

{
    "version": "0.2.0",
    "configurations": [
      {
        //方式一
        "name": "Debug Main Process",
        "type": "node",
        "request": "launch",
        "cwd": "${workspaceFolder}",
        "timeout": 60000, //避免出现can not connect to the target错误
        "runtimeExecutable": "${workspaceFolder}/node_modules/.bin/electron",
        "windows": {
          "runtimeExecutable": "${workspaceFolder}/node_modules/.bin/electron.cmd"
        },
        "args" : ["."],
        "env": {
          "NODE_ENV": "development"
        },
      },
      {
        //方式二
        "name": "Attach",
        "type": "node",
        "request": "attach",
        "port": 5858,
        "sourceMaps": true,
        "address": "localhost",
        "timeout": 60000 //避免出现can not connect to the target错误
      }
    ]
}
image

需要注意的是,如果方式二中使用的是inspect-brk,开始调试后需要按F5开始代码跟踪。

更详细的VS CODE调试工具使用方式可以参照:https://code.visualstudio.com/docs/editor/debugging

2. 渲染进程调试

    const mainWindow=new BrowserWindow()
    mainWindow.loadURL('www.jianshu.com')
    mainWindow.webContents.openDevTools()

该实现的效果是,在加载 HTML 文件之后即打开 devtools 。

    {
        "name":"Renderer",
        "type":"chrome",
        "request":"attach",
        "port":9222," //可以在main.js中设置remote-debugging-port,更改默认端口
        webRoot":"${workspaceFolder}" // 需要指定静态资源对应目录
    }

3. 生产版本调试

待补充

上一篇 下一篇

猜你喜欢

热点阅读