我是Java开发人员,但我必须尝试调试在Electron中运行的基于节点的应用程序。我使用IntelliJ IDEA进行Java开发/调试,并使用WebStorm来调试JS应用程序。
作为Java开发人员,我习惯以调试模式启动JVM / Tomcat / OSGi容器,我可以将IntelliJ作为我的调试器。这允许我动态添加断点,而无需修改IntelliJ中的代码。我希望能够对Electron应用程序做同样的事情,但我还没有能够弄清楚如何做到这一点。
我尝试使用详细here的--inspect
选项启动Election,但无法将WebStorm附加到其中。我也尝试在WebStorm本身设置一个运行时配置,这个配置就像启动Electron一样有效但终止了错误'连接被拒绝'。
我还使用this和this来尝试附加调试器,但无济于事。我还必须在Windows上工作,所以我不得不处理不适当的工具来确定Electron是否正在监听端口。
更新
我无法在此处输入完整的代码,但我会使用以下命令启动应用程序:
npm run dev
这是应用程序根文件夹中的相关部分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 .",
应用程序启动,即Election窗口出现,但在完全呈现之前终止。我无法确定它在启动失败前会有多远。
更新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 .",
但仍然得到Connection refused
。
答案 0 :(得分:1)
要调试Electron主进程,您需要使用 Node.js 运行配置;对于渲染过程,需要附加到Node.js / Chrome 配置。
有关详细信息,请参阅https://blog.jetbrains.com/webstorm/2016/05/getting-started-with-electron-in-webstorm/
答案 1 :(得分:0)
我发现,如果电子以以下标志启动,则WebStorm可以正确调试主过程:
electron . --serve --inspect-brk=5893
请注意'brk',它将停止该过程,直到连接了调试器为止。
然后,我刚刚创建了一个运行配置(附加到Node.js / Chrome)并指定了5893端口,要求自动重新连接。