我是一名 Java 开发人员,但我必须尝试调试在 Electron 内运行的基于 Node 的应用程序。我使用 IntelliJ IDEA 进行 Java 开发/调试,并使用 WebStorm 来调试 JS 应用程序。
作为一名 Java 开发人员,我习惯于在 Debug模式下启动 JVM/Tomcat/OSGi 容器,我可以将 IntelliJ 作为调试器附加到该模式。这使我能够动态添加断点,而无需修改 IntelliJ 中的代码。我希望能够对 Electron 应用程序执行相同的操作,但我一直无法弄清楚如何执行此操作。
我已尝试使用 --inspect
选项启动选举,详细信息 here但无法将 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 .",
应用程序启动,即出现选举窗口,但在完全呈现之前终止。我无法确定它在启动之前会发展到什么程度才会失败。
更新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 .",
但仍然得到连接被拒绝
。
最佳答案
调试Electron主进程,需要使用Node.js运行配置;对于渲染过程,需要附加到 Node.js/Chrome 配置。
请参阅https://blog.jetbrains.com/webstorm/2016/05/getting-started-with-electron-in-webstorm/了解更多信息
关于node.js - 配置 Electron/Node 以在调试中运行并附加调试器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49537937/