javascript - 在没有源代码或构建过程的 Electron 应用程序的生产构建中打开 Chromium DevTools
问题描述
有没有办法在打包并分发给您的 Electron 生产版本上打开开发工具?
例如,我想浏览一下 Slack 的应用程序。我知道它是用 Electron 构建的,我想打开 devtools 看看它的某些部分是如何构建的。
在 macOS 上,我尝试过:
ELECTRON_ENV=development /Applications/Slack.app/Contents/MacOS/Slack --debug --auto-open-devtools-for-tabs
以及 Cmd+Option+I 和检查调试菜单/视图的常用组合键。
这些似乎都没有什么不同。
请注意,已经有一些解决方案建议您通过注入以编程方式执行此操作:
remote.BrowserWindow.getFocusedWindow().webContents.openDevTools()
但是我不能这样做,因为我无权访问源代码或原始构建过程。有没有办法从外部触发开发工具?
到目前为止我见过的最有希望的方法是remote-debugging-port
,但我不确定它是否适用于生产版本。
解决方案
在没有第三方代码的情况下做到这一点的方法确实是使用--remote-debugging-port
标志。
以 Signal 为例,采取以下步骤:
- 从 CLI 启动应用程序
signal-desktop --remote-debugging-port
- 在 Google Chrome 浏览器中打开调试 URL(在本例中
http://localhost:39733/
),这将打开一个带有应用名称的页面
。 - 单击以打开一个屏幕,您可以单击以使用该应用程序并在 devtools 中查看输出
或者,您可以chrome://inspect/#devices
在 Google Chrome 浏览器中打开并单击“检查”(在应用名称下方)以打开相同的窗口
推荐阅读
- git - 如何在将旧 master 保留为分支的同时使分支成为新 master?
- java - Guice 将一个对象注入到类构造函数中
- android - Android Studio Vector 资产总是无法生成预览
- java - 如何使用 Hibernate 作为 Vert.x 的非阻塞 ORM
- ocaml - 在 utop 中使用完全限定名称
- wordpress - 如何在网站上隐藏标题产品?
- javascript - WebAssembly/emscripten:从浏览器中将文件写入磁盘
- javascript - 限制while循环的次数
- bash - 如何根据子目录的文件名长度对文件进行排序?
- matlab - 如何更新矩阵行中的值