Electron:在主进程中使用模块

Posted

技术标签:

【中文标题】Electron:在主进程中使用模块【英文标题】:Electron: Using a module in the main process 【发布时间】:2015-12-12 19:35:30 【问题描述】:

我正在尝试使用我在 Electron 的主进程中自己制作的模块, 但由于某种原因,它不能按预期工作(根本)。

在主进程(main.js)中,我定义了模块

const connection = require('connection');

该模块导出一个名为 init 的函数

var Connection = 
    init: function() 
        ...
    ,
    ....

module.exports = Connection;

但是当试图调用这个方法时,通过网页上的主进程(main.js)。 (login.html)

var Connection = require('electron').remote.connection;
Connection.init();

它告诉我连接是未定义的。 我知道我制作的 Connection 模块有效,因为我在渲染器过程中使用它很好。

我想在主进程中使用整个 Connection 模块的原因是,即使用户转到另一个页面,我也可以保持该连接处于活动状态并执行任务。

我已经四处搜索,但似乎找不到解决问题的方法。

谢谢。

【问题讨论】:

【参考方案1】:

找到答案, 通过主进程使用模块的正确方法是使用这个:

require('electron').remote.require('connection');

【讨论】:

感谢您的提示。为我工作。 如果现在对某人有用(2021 年 5 月)。我正在使用更新版本的电子(v11),我的设置包括上下文隔离、预加载、nodeIntegration = false 和远程禁用。而且我可以在不使用远程和现代“从'./file.js'中导入文件模块;”的情况下导入模块句法。因此,从今天开始,您可以省略使用 remote 来要求您的模块并且它工作正常。

以上是关于Electron:在主进程中使用模块的主要内容,如果未能解决你的问题,请参考以下文章

Electron 在主进程内可用的模块

electron渲染进程与主进程通信

来自 Electron 渲染器进程的 require() 节点模块,通过 HTTP 提供服务

Electron 键盘快捷键

vuejs electron webpack集成使用

有没有办法在多个电子主进程之间进行通信?