【问题标题】:Electronjs require usage on renderer processElectronjs 需要在渲染器进程上使用
【发布时间】:2020-02-12 00:17:17
【问题描述】:

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

考虑一下电子项目的以下布局:

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 变量。因此,如果需要,我不需要在 module2 中再次 require module1。

模块2:

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

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

【问题讨论】:

    标签: javascript node.js electron


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-11-28
      • 1970-01-01
      • 2021-06-22
      • 2021-07-24
      • 2011-04-07
      • 1970-01-01
      • 1970-01-01
      • 2019-04-11
      相关资源
      最近更新 更多