Node.js 配置Electron/Node以在调试中运行并附加调试器
我是一名Java开发人员,但我必须尝试调试运行在Electron内部的基于节点的应用程序。我使用IntelliJ IDEA进行Java开发/调试,并使用WebStorm调试JS应用程序 作为一名Java开发人员,我习惯于在调试模式下启动JVM/Tomcat/OSGi容器,我可以将IntelliJ作为调试器附加到该模式。这允许我动态添加断点,而无需修改IntelliJ中的代码。我想在电子应用程序中也能做到这一点,但我还没能想出如何做到这一点 我已尝试使用Node.js 配置Electron/Node以在调试中运行并附加调试器,node.js,electron,webstorm,Node.js,Electron,Webstorm,我是一名Java开发人员,但我必须尝试调试运行在Electron内部的基于节点的应用程序。我使用IntelliJ IDEA进行Java开发/调试,并使用WebStorm调试JS应用程序 作为一名Java开发人员,我习惯于在调试模式下启动JVM/Tomcat/OSGi容器,我可以将IntelliJ作为调试器附加到该模式。这允许我动态添加断点,而无需修改IntelliJ中的代码。我想在电子应用程序中也能做到这一点,但我还没能想出如何做到这一点 我已尝试使用--inspect选项启动选举,但无法将We
--inspect
选项启动选举,但无法将WebStorm附加到它。我还尝试在WebStorm本身中设置一个运行时配置,该配置在启动Electron时起作用,但终止时出现错误“connection Rejected”
我还使用和尝试附加调试器,但没有效果。我还必须在Windows上工作,所以我必须处理不充分的工具来确定Electron是否正在监听端口
更新
我无法在此处输入完整的代码,但我会以以下内容开始应用程序:
npm运行开发人员
这是应用程序根文件夹中的相关部分package.json
,但未指定任何调试选项:
"dev": "concurrently --raw --kill-others \"npm run dev-server\" \"npm run start\"",
"dev-server": "webpack-dev-server --hot --inline",
"start": "cross-env WEBPACK_ENV=dev electron .",
应用程序启动,即出现“选择”窗口,但在完全呈现之前终止。我不能肯定它在启动到什么程度后才会失败
更新2
我已将package.json
文件dev
和start
行修改为:
"dev": "concurrently --raw --kill-others \"npm run %NODE_DEBUG_OPTION% dev-server\" \"npm run %NODE_DEBUG_OPTION% start\"",
"start": "cross-env WEBPACK_ENV=dev electron --inspect=5858 --remote-debugging-port=9223 .",
但仍然得到
连接被拒绝
调试电子主进程,需要使用Node.js运行配置;对于渲染过程,需要附加到Node.js/Chrome配置
请参阅了解更多信息我发现,如果electron使用以下标志启动,WebStorm可以正确调试主进程:
electron . --serve --inspect-brk=5893
注意“brk”,它会停止进程,直到附加了调试器
然后我刚刚创建了一个运行配置(附加到Node.js/Chrome)并指定了5893端口,告诉您自动重新连接。您从开始到现在有多远?还有两个进程需要使用electron进行调试主进程(electron本身)和渲染进程(浏览器实例)
--远程调试端口=9223
将为渲染器添加远程调试,“我还必须在Windows上工作,因此我必须处理不充分的工具来确定Electron是否正在监听端口。“netstatnetstat
有什么问题?”HansKoch补充了一些额外的信息。我将尝试您提到的其他选项。我在文档中没有看到远程调试端口选项。嗨,莉娜,谢谢你的回答。在遵循您提供的链接之后,我仍然无法将调试器附加到主进程或渲染进程。当连接到主应用程序时,应用程序在启动后刚刚终止,对于渲染过程,它“似乎”要连接,但不会命中断点。我在这里可能很愚蠢,但尝试附加调试器应该不会这么困难。Node/NPM/electron似乎使这一点变得太难了。