javascript - 是否可以访问发布构建的 Electron 应用程序的主窗口?
问题描述
我正在尝试访问 Electron 应用程序的主窗口 JavaScript 上下文。
这在开发中很容易:
npm install electron --save-dev
electron index.js --inspect
- 转到
chrome://inspect
并打开 DevTools - 在 DevTools 控制台中,运行
require('electron')
并瞧
但是,在分发应用程序之后,我使用预构建的 Electron 二进制文件并按照手动分发resources/app
中的描述放置我的文件,调用在附加的调试器中不再可用。require
electron --inspect
仍然可以工作,并且调试器已连接并正在侦听。DevTools 也可以连接,我可以看到全局变量(如process
),但全局变量require
不再存在。
我对 Electron 的发布版本没有经验,这个全球性是否永远被剥夺了?我是否必须构建自己的电子二进制文件并以某种方式将其配置为保留?
是否有可能使用已经构建的应用程序以require
某种方式访问全局?
解决方案
Electron 存储库中的一位绅士在我发布的 GitHub 问题中帮助了我。
确实require
在全局级别不可用似乎是设计使然,但有一种方法可以获取对该require
函数的引用:
process.mainModule.require
这对我来说非常好用,无论是npx electron --inspect
在运行带有--inspect
标志的内置 Electron 时。
推荐阅读
- angular - 在 vscode angular 6 中运行 ng serve --open 时,我面临以下问题
- python - 可以设置 include_requires 绕过 PyPI 中的最佳匹配并克隆 repo 吗?
- php - 如何更改 SVG 的宽度和高度以使其响应?
- java - 尝试在空对象引用上调用虚拟方法“void android.widget.TextView.setText(java.lang.CharSequence)”?
- samtools - 如何使用 pysam 在 bam 文件中添加带有读取质量分数的“OQ”标签作为附加字段
- c++ - 为什么我能够增加指向单个新 int 位置的指针?令人惊讶的是它运作良好
- python - 为什么我生成的 WHERE 子句不正确?
- playlist - 在 Android 中为 ExoPlayer 使用 ConcatenatingMediaSource
- python - 如何根据条件将数据框列拆分为单独的列
- angular - Ngrx 问题试图结合 DRY 原则和良好的动作卫生