所以在 electron-quick-start 演示中,HTML 文件 “index”
中有一个 require 函数需要 Electrons 渲染过程。
我知道 NodeJs 为 electron 提供动力(并且 require 是一个 Node 函数),但是当我尝试使用简单的 Chrome 运行一个 HTML 文件时,它没有工作(这是预期的,但我想也许你可以仅在后端使用 require。
是因为当你用 "electron . "
运行 electron 时,它会以不同的方式解释 HTML 文件,就像 React 如何使用 JSX 或 ruby 和 HTML.erb 一样?
最佳答案
根据设计,渲染器和主要 Electron 进程都可以访问 require 函数。
这种所谓的 Node 集成有时会中断 jQuery 和其他前端库的正常运行,可以在 browserWindow
设置期间通过 nodeIntegration 属性将其禁用:
// In the main process.
const {BrowserWindow} = require('electron')
let win = new BrowserWindow({
webPreferences: {
nodeIntegration: false
}
})
win.show()
请注意:这也会禁用进程间通信 (IPC) 库,您将无法再在主渲染器进程和您各自的渲染器进程之间交换消息 (there's a workaround)。
安全说明:NodeIntegration/require() 仅在您从 Electron 中引用本地 HTML 文件时才有效。有关与 nodeIntegration 相关的安全问题的更多信息 can be found here .
关于JavaScript - 为什么 require 函数可以用在 ElectronJs 的浏览器脚本标签中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51511549/