配置电子/节点以在调试中运行并附加调试器

时间:2018-03-28 15:00:10

标签: node.js electron webstorm

我是Java开发人员,但我必须尝试调试在Electron中运行的基于节点的应用程序。我使用IntelliJ IDEA进行Java开发/调试,并使用WebStorm来调试JS应用程序。

作为Java开发人员,我习惯以调试模式启动JVM / Tomcat / OSGi容器,我可以将IntelliJ作为我的调试器。这允许我动态添加断点,而无需修改IntelliJ中的代码。我希望能够对Electron应用程序做同样的事情,但我还没有能够弄清楚如何做到这一点。

我尝试使用详细here--inspect选项启动Election,但无法将WebStorm附加到其中。我也尝试在WebStorm本身设置一个运行时配置,这个配置就像启动Electron一样有效但终止了错误'连接被拒绝'。

我还使用thisthis来尝试附加调试器,但无济于事。我还必须在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文件devstart行修改为:

"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

2 个答案:

答案 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端口,要求自动重新连接。