npm模块在电子渲染过程中的应用



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

当我使用这个:

const Buffer = require('Buffer')

它说需求是未定义的。

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

确保BrowserWindow设置中的nodeIntegration设置为truecontextIsolation设置为false,如下所示:

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

默认情况下,nodeIntegrationfalse,它会阻止您在渲染器过程中使用NPM模块,启用nodeIntegration会解决此问题。

点击此处阅读更多

注意:要从Renderer进程访问Node.js API,您需要将nodeIntegration首选项设置为true,将contextIsolation首选项设为false。

免责声明,打开nodeIntegration会在应用程序中打开安全漏洞。请参阅Zac关于如何修复它们的回答。

由于上面的答案会打开安全漏洞,因此应该使用预加载脚本。预加载脚本是在不将nodeIntegration设置为true的情况下向渲染器进程公开一些node.js函数的一种方式。查看www.electronjs.org.上关于预加载脚本的文档

最新更新