javascript - 如果没有明确导入任何 require 框架,在 Electron 的客户端中使用 require 如何合法?

标签 javascript browser electron require

要与 Electron 中的主进程通信,渲染器进程需要 ipcMain 模块 ( https://github.com/electron/electron/blob/master/docs/api/ipc-main.md ):

<script>
  // In renderer process (web page).
  const {ipcMain} = require('electron')
</script>

我很困惑为什么这是合法的。在包含此脚本的客户端 html 文件中,没有对任何需要框架的引用(没有用于导入任何需要框架的脚本标记)。然而,您可以凭空使用 require,它不是 Javascript 关键字。

require 机制在 Electron 中是如何工作的?

最佳答案

Electron 的渲染器进程不是普通的 chromium 进程 - 当 Electron 启动渲染器窗口时,它会在内部注入(inject)全局对象以启用 Electron 特定功能。 require 就是其中之一,修补全局以在 chromium 进程中公开 node.js 模块解析。

关于javascript - 如果没有明确导入任何 require 框架,在 Electron 的客户端中使用 require 如何合法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48217413/

相关文章:

javascript - 如何在 Firefox 操作系统上获取 MSISDN

javascript - 处理 Vuex 操作结果的做法是什么

javascript - Web Worker 开销指标

html - 在 Web 应用程序中使用 True Type 字体

node.js - electron-builder 拒绝使用 256 x 256 图标

html - Electron 应用切换到时触发事件

javascript - Chrome : Setting class in jQuery is not reflected/rendered in the DOM

javascript - 停止在新窗口中打开的音频元素

jquery - 下拉菜单将内容向下移动

Javascript Electron Menu 从菜单模板文件打开应用程序窗口