electron 在电子渲染过程中使用npm模块

7ajki6be  于 2023-05-21  发布在  Electron
关注(0)|答案(2)|浏览(204)

我已经通过npm install Buffer在我的机器上安装了Buffer模块,我想简单地将其导入渲染器进程以使用Buffer
当我使用这个:

const Buffer = require('Buffer')

require是undefined。
Stack Overflow上的所有解决方案都不起作用。

fzwojiic

fzwojiic1#

确保您在BrowserWindow设置中将nodeIntegration设置为true,并将contextIsolation设置为false,如下所示:

new BrowserWindow({
    webPreferences:  {
        nodeIntegration:  true,
        contextIsolation: false
    },
});

默认情况下,nodeIntegrationfalse,这会阻止您在renderer-process中使用NPM模块,打开nodeIntegration将修复此问题。
阅读更多
注意:要从Renderer进程访问Node.js API,您需要将nodeIntegration首选项设置为true,将contextIsolation首选项设置为false。

免责声明,开启nodeIntegration会打开应用的安全漏洞。See Zac's answer如何修复它们。

gopyfrb3

gopyfrb32#

由于上面的答案会带来安全漏洞,因此您应该使用预加载脚本。preload scripts是一种将一些node.js函数暴露给渲染器进程的方法,而无需将nodeIntegration设置为true。查看有关www.electronjs.org上的预加载脚本的文档。

相关问题