使用VS Code调试Electron应用程序

mmvthczy  于 2024-01-04  发布在  Electron
关注(0)|答案(1)|浏览(192)

我有一个基于TypeScript的Electron应用程序,我正在VS Code中开发。目前我的调试设置如下:
1.电子发射器的发射配置条目
1.电子渲染器的启动配置条目
启动器在VS代码中调试得很好,但是渲染器从来没有附加。我可以在浏览器中使用Chrome调试器,但是TypeScript的源Map都不能正常工作,Map了错误的行。例如,实际的断点可能在第50行,但是调试器在第65行停止。
在理想的情况下,我可以在VS代码中调试TypeScript。有没有办法实现这一点?有没有办法让Chrome正确处理源代码Map,这样我就可以使用开发人员工具进行调试?

  1. "configurations": [
  2. {
  3. "type": "node",
  4. "request": "launch",
  5. "name": "Electron: Main",
  6. "protocol": "inspector",
  7. "cwd": "${workspaceRoot}/myapp-electron/",
  8. "program": "${workspaceRoot}/myapp-electron/dist/main/main.js",
  9. "runtimeExecutable": "${workspaceRoot}/myapp-electron/node_modules/.bin/electron.cmd",
  10. "runtimeArgs": [
  11. "--remote-debugging-port=9223",
  12. "."
  13. ],
  14. "windows": {
  15. "runtimeExecutable": "${workspaceRoot}/myapp-electron/node_modules/.bin/electron.cmd",
  16. }
  17. },
  18. {
  19. "name": "Electron: Renderer",
  20. "type": "chrome",
  21. "request": "attach",
  22. "port": 9223,
  23. "webRoot": "${workspaceFolder}/myapp-electron",
  24. "timeout": 30000
  25. }
  26. ],

字符串

kmb7vmvb

kmb7vmvb1#

你可以从vscode调试主进程和渲染器进程。访问这个链接vscode-recipes/Electron
在那里,你会发现一个launch.json,你可以使用它作为参考。这里是一个例子:

  1. {
  2. "version": "0.2.0",
  3. "configurations": [
  4. {
  5. "type": "node",
  6. "request": "launch",
  7. "name": "Electron: Main",
  8. "runtimeExecutable": "${workspaceFolder}/node_modules/.bin/electron",
  9. "runtimeArgs": [
  10. "--remote-debugging-port=9223",
  11. "."
  12. ],
  13. "windows": {
  14. "runtimeExecutable": "${workspaceFolder}/node_modules/.bin/electron.cmd"
  15. }
  16. },
  17. {
  18. "name": "Electron: Renderer",
  19. "type": "chrome",
  20. "request": "attach",
  21. "port": 9223,
  22. "webRoot": "${workspaceFolder}",
  23. "timeout": 30000
  24. }
  25. ],
  26. "compounds": [
  27. {
  28. "name": "Electron: All",
  29. "configurations": [
  30. "Electron: Main",
  31. "Electron: Renderer"
  32. ]
  33. }
  34. ]

字符串
}

注意:为了调试渲染器进程,您需要预先 * 运行 * 主进程。

展开查看全部

相关问题