如何使用 IntelliJ 或 WebStorm 调试电子应用程序?

Posted

技术标签:

【中文标题】如何使用 IntelliJ 或 WebStorm 调试电子应用程序?【英文标题】:How to debug electron applications with IntelliJ or WebStorm? 【发布时间】:2015-09-02 08:46:18 【问题描述】:

我使用 IntelliJ 作为开发工具,我想知道如何调试 Electron 应用程序?

我知道有一个 standard way 可以调试 Electron 应用程序,但是这个方法是在我的 IDE 之外完成的。

我尝试使用以下方法创建一个新的“Node.js”“运行/调试配置”:

节点解释器:<path to node> 工作目录:<path to my application root folder> javascript 文件:node_modules/.bin/electron 应用参数:.

使用此设置,我的应用程序将启动,但如果我在 main.js 中设置断点,应用程序将永远不会在断点处停止(= 调试不起作用)。

【问题讨论】:

【参考方案1】:

我就是这样设置的,效果很好。然后我把我的断点放在 webstorm 里面,它就可以工作了。

在 webstorm 中创建一个新的运行时配置,如下所示。

【讨论】:

我有类似的设置,可以运行,但调试不起作用。 与@GrahamWheeler 相同。有人找到解决方案了吗?【参考方案2】:

尝试通过 node_modules 中的电子可执行文件更改您的节点解释器。这对我来说似乎工作正常;)

【讨论】:

您能详细说明一下吗?看来我无法让它工作(使用 WebStorm 10)。请列出所有道具,以便我进行测试:) 他的意思是你添加一个新的运行/调试配置,选择nodejs并将参数“节点解释器”更改为电子二进制文件。例如,在 OSX 上,如果您通过“npm install -g electron-prebuilt”安装了电子,例如“/usr/local/bin/electron”。比您可以启动和调试应用程序。我目前的问题是节点配置以 --debug-brk=[port] 开始,女巫适用于节点但不适用于电子,因为电子需要 --debug=[port] 否则它会在第一行暂停(bit.ly/1XHictg )。调试配置示例:imgur.com/DqPvLzk【参考方案3】:

我在 IDE 中进行了调试,并为将来做了一些笔记 我会放在这里以防它可以帮助某人(甚至是 改进)。

调试配置 JetBrains IDE

这些指令适用于代码库 electron-react-boilerplate on GitHub

JetBrains JS 调试仅适用于基于 Chrome 或 Chromium 的网络 浏览器。我只使用 Firefox,所以为了让它工作,我安装了 适用于 Linux 的 Chromium。

在项目代码中启用调试

添加或修改$project_root/.erb/configs/webpack.config.renderer.dev.dll.tsdevtool: 'source-map',mode: 'development',

添加或修改$project_root/tsconfig.json"inlineSources": true,"inlineSourceMap": true,

没有这条线也可以工作。添加或修改$project_root/src/main/main.tsapp.commandLine.appendSwitch('remote-debugging-port', '9229')

JetBrains IDE 配置

要在 JetBrains IDE 中进行调试, 首先使用 npm 启动应用程序 开始运行配置(屏幕截图)或终端, 然后在 JetBrains IDE 中运行 jsdebug configuration(截图)。

当您运行 JavaScript Debug configuration 时,Chromium 实例会启动,并且调试器应该在您的 IDE 中的断点处停止。

肯定有改进的余地,因为我现在运行 2 个 GUI 实例,1 个以 run npm start 开头,1 个以 run JavaScript Debug configuration 开头,允许我在 IDE 中进行调试。

截图

链接

WebStorm debugging JetBrains docs

JetBrains 2016 debugging tutorial

注意事项

Electron 应用程序在 localhost:1212 上运行。这个信息是 由于没有地址栏,因此在电子“浏览器”中不可见, 但是可以在网上的webpack.config.renderer.dev.ts中发现 const port = process.env.PORT || 1212;.

【讨论】:

以上是关于如何使用 IntelliJ 或 WebStorm 调试电子应用程序?的主要内容,如果未能解决你的问题,请参考以下文章

如何配置 IntelliJ / WebStorm 在 *.TS、*.JS 文件中的代码完成中使用单引号

JetBrains套装免费学生授权申请(IntelliJ, ReSharper, WebStorm...)

如何在鼠标悬停时禁用 JetBrains IDE(IntelliJ IDEA、PyCharm、WebStorm)中的自动显示提示

intellij idea pycharm phpstorm webstorm 使用 FiraCode 作为编程字体,更新后字符乱码问题解决

JetBrains IDE(WebStorm、IntelliJ、Pycharm 等)没有为 Bitbucket 保存密码

如何设计一款WebStorm的插件?