Electronjs要求在渲染器过程中使用

时间:2019-10-15 10:31:24

标签: javascript node.js electron

在电子应用程序中,我们可以在渲染器和主过程中都需要节点模块。我意识到,当我在渲染器进程的主模块(html的输入脚本)中需要一个模块时,该模块在我拥有的每个文件中都可用。我可能没有很清楚地解释它,所以让我举个例子。

为电子项目考虑以下布局:

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

main.js是电子应用程序的主要处理过程,而index.js是在body.tag末尾的index.html中加载的脚本。

在index.js内,我同时需要module1和module2(文件的其余部分无关)

const m1 = require('module1')
const m2 = require('module2')

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

module2:

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

我觉得在编写渲染器端时好像犯了一个错误,好像它是一个节点应用程序一样。而且在编写电子应用程序的渲染器端时,我找不到任何有关通用规则的文档。我知道这是一个间接问题,但是您可以指导我有关渲染器进程布局的问题。我不应该尝试将渲染器js文件分成模块吗?

1 个答案:

答案 0 :(得分:0)

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

OR

尝试使用远程电子模块(https://electronjs.org/docs/api/remote

OR

在主过程中访问模块,调用用于预期结果的函数,然后使用IPC将结果发送回渲染器过程。