vscode 如何断点调试普通 electron 程序?主进程调试篇
发布于 作者:苏南大叔 来源:程序如此灵动~ 我们相信:世界是美好的,你是我也是。平行空间的世界里面,不同版本的生活也在继续...
vscode
调试electron
系列文章第二篇,主要讲述:electron
主进程调试的可能问题及其解决方案。本文的前提是您已经设置好了.vscode/launch.json
文件。该配置文件的设置方法,详见文末相关链接。
本文测试环境:mac
/electron@3.0
/quick-start
。
loadfile
函数bug
,导致调试时显示错误主页
可能存在的一个问题是:在使用vscode
对electron
进行主进程调试的时候,可能出现的一个问题就是:显示的页面是默认页面,而不是自己编写的index.html
。例如下图所示:
这个问题的根源并不是因为vscode
调试的缘故,但是确由vscode
调试而暴露。所以,就暂时归属在这个文章里面吧。产生问题的原因,应该是electron
函数loadfile
的bug
。具体可以参见下面的这篇文章。
可能产生错误的写法:
mainWindow.loadFile(`index.html`)
因为这个loadFile
是3.0
系列开始添加的新函数,所以,可能出问题的electron
也是从3.0
系列开始的,请知悉。
解决方案
解决方案也比较简单,就是不使用loadFile
,而使用传统的loadUrl
。或者loadFile
时使用绝对路径,而不是相对根目录的路径。这样就可以load
到正确的主页了。
一个可能的替代方案:
newsn.net:这里是【评论】可见内容
另外一个可能的解决方案:
mainWindow.loadFile(`${__dirname}/index.html`)
两个方案的写法是有所不同的,大家可以注意对比一下。
开始主进程调试
修改好上述loadFile
函数,然后再配置好.vscode/launch.json
之后,就可以愉快地调试主进程了。.vscode/launch.json
:
{
"version": "0.2.0",
"configurations": [
{
"name": "Debug Main Process",
"type": "node",
"request": "launch",
"cwd": "${workspaceRoot}",
"runtimeExecutable": "${workspaceRoot}/node_modules/.bin/electron",
"windows": {
"runtimeExecutable": "${workspaceRoot}/node_modules/.bin/electron.cmd"
},
//"stopOnEntry": true,
"sourceMaps": true,
"program": "${workspaceRoot}/main.js",
"protocol": "inspector"
}
]
}
相关链接
总结
electron
的loadFile
这个bug
,仅仅发生在vscode
的调试阶段。对于不使用vscode
的调试,以及build
后的成品,是不会有这个问题的。所以,不必担心会产生更大的问题。
更多苏南大叔的electron
的相关文章,请点击下面的链接查看:
如果本文对您有帮助,或者节约了您的时间,欢迎打赏瓶饮料,建立下友谊关系。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。
如果时typescript版 如何调试呢,试过很多方法都报错
没试过typescript版本