Electron - 解决渲染器进程中的电子模块问题

Posted

技术标签:

【中文标题】Electron - 解决渲染器进程中的电子模块问题【英文标题】:Electron - Issue Resolving Electron Modules In Renderer Process 【发布时间】:2015-12-28 11:58:42 【问题描述】:

我在使用 Electron v0.32.3 和 require 的 Web 应用程序中解析电子模块时遇到了困难。我的理解(尽管在文档中不是很清楚)是这些模块应该可以自动用于要求在 webview 中运行的应用程序(示例包括“ipc”和“远程”)。我可以看到它们在运行时就在那里,但我不确定如何访问它们:

我觉得我缺少一些东西。其他信息:我的 Web 应用程序是一个 Durandal 2x SPA,它已经使用 require 来加载模块。渲染过程中是否需要任何其他类型的设置 requirejs 配置才能访问这些模块?

【问题讨论】:

【参考方案1】:

事实证明,我只是不了解正在发生的所有不同过程。因此,对于在 browser-window 内使用 webview 的应用程序,实际上需要关注三个进程:

    主进程 - 可以访问节点 渲染器进程(浏览器窗口) - 默认情况下可以访问节点 Web 查看进程 - 默认情况下没有是否有权访问节点

我看到了可用于 2) 的节点模块并尝试在 3) 中使用它们。 webview 具有可用于启用此功能的“nodeintegration”属性: http://electron.atom.io/docs/v0.34.0/api/web-view-tag/#nodeintegration

但是,使用预加载脚本只允许使用 nodeintegration 公开必要的节点功能: http://electron.atom.io/docs/v0.34.0/api/web-view-tag/#preload

我采用了那个解决方案,在渲染器进程和 webview 进程之间建立了通信。

【讨论】:

以上是关于Electron - 解决渲染器进程中的电子模块问题的主要内容,如果未能解决你的问题,请参考以下文章

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

找不到模块“电子”

在 Electron 中的两个渲染器进程之间直接通信

Electron - 限制从主进程到渲染进程的消息流

在 Electron 中的两个渲染器进程之间进行通信

如果渲染器进程关闭,则会收集电子全局变量垃圾?