我已经使用electron forge生成了一个基于react-typescript模板的应用程序。我为这个应用程序写了一些vscode调试配置。但我只能调试主进程,渲染器是失踪。我已经安装了调试器的 chrome 扩展和使用它之前。我想知道我在配置中缺少了什么?
{
"configurations": [
{
"type": "node",
"request": "launch",
"name": "Electron: Main",
"protocol": "inspector",
"runtimeExecutable": "${workspaceFolder}/node_modules/.bin/electron-forge-vscode-win",
"runtimeArgs": [
"--remote-debugging-port=9223",
"."
],
"windows": {
"runtimeExecutable": "${workspaceFolder}/node_modules/.bin/electron-forge-vscode-win.cmd"
}
},
{
"name": "Electron: Renderer",
"type": "chrome",
"request": "attach",
"port": 9223,
"webRoot": "${workspaceFolder}",
"timeout": 30000
}
],
"compounds": [
{
"name": "Electron: All",
"configurations": [
"Electron: Main",
"Electron: Renderer"
]
}
]
}
3条答案
按热度按时间zpqajqem1#
我知道这是事后的方式,但我想回答的情况下,其他人是挣扎与这个问题,就像我今天一整天。
在阅读了matsu's blog的一个关键信息之后:
转到main.js并注解掉这一行:
mainWindow.webContents.openDevTools()
远程调试不适用于多个DevTools客户端。我们将在VS Code中使用调试器,而不是Electron的DevTools。
一些(所有?)电子伪造模板在启动时打开Chrome开发工具。Chrome / Electron的一个局限性是只支持一个到任何类型的调试器的连接(在response from MSFT here中确认)。我们只需要注解掉这一行。
在你的main.js(或index.ts或其他)中:
iyfamqjs2#
复制你的launch.json,然后写一些代码,设置断点。测试代码放在app.tsx的末尾:
断点工作正常。
我在launch.json中做的另一个改变是:
yfjy0ee73#
在
package.json
中添加新脚本然后在
.vscode/ launch.json
中添加以下配置我已经在ReactJS with Webpack项目中使用了上面的配置。