javascript - Electronjs 需要在渲染器进程上使用

标签 javascript node.js electron

在 Electron 应用程序中,我们可以在渲染器和主进程中都需要 Node 模块。我已经意识到,当我在渲染器进程的 main(html 的入口脚本)中需要一个模块时,它在我拥有的每个文件中都可用。我可能解释的不是很清楚,所以让我举个例子。

考虑 Electron 项目的以下布局:

src\
main.js
module1.js
module2.js
index.js
index.html

main.js 是 Electron 应用程序的主要进程,而 index.js 是在 index.html 的 body 标签末尾加载的脚本。

在 index.js 中,我需要 module1 和 module2(文件的其余部分无关紧要)
const m1 = require('module1')
const m2 = require('module2')

我在这里意识到的是,在 module2 内部,我现在可以访问 m1 变量。因此,如果需要,我不需要在模块 2 中再次要求模块 1。

模块2:
console.log(m1) // actually shows the m1 that was required in index.js

我觉得我在尝试编写渲染器端时犯了一个错误,就好像它是一个 Node 应用程序一样。在编写 Electron 应用程序的渲染器端时,我没有找到任何有关一般规则的文档。我知道这是一个间接的问题,但你能指导我关于渲染器进程布局吗?我不应该尝试将渲染器 js 文件分成模块吗?

最佳答案

您可以在创建主 BrowserWindow 时使用 webPreferences 中的 preload 参数。

或者

尝试使用 Electron 的远程模块(https://electronjs.org/docs/api/remote)

或者

访问主进程中的模块,调用预期结果的函数,并使用 IPC 将结果发送回渲染器进程。

关于javascript - Electronjs 需要在渲染器进程上使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58392594/

相关文章:

node.js - 如何在 Node.js 中对 pdfkit PDF 文件生成进行正确的回调?

node.js - TypeError : Request path contains unescaped characters, 我该如何解决这个问题

node.js - 通过Chrome远程调试API在 Electron 中设置断点

commonjs - 有没有办法在原生 CommonJS 环境中使用 JSX?

javascript - 你如何捕获窗口上的鼠标?

javascript - 如何处理 Angular 中对象属性的变化?

javascript - numeral.js - 负数舍入/格式问题

node.js - 如何从 Express Node 服务器中调用 Protractor ?

javascript - 如何在网页上单击按钮时制作 html5 动画?

node.js - 启动 Electron App 后自动运行 Node.js 服务器文件