我已经通过npm install Buffer在我的机器上安装了Buffer模块,我想简单地将其导入渲染器进程以使用Buffer当我使用这个:
npm install Buffer
const Buffer = require('Buffer')
require是undefined。Stack Overflow上的所有解决方案都不起作用。
fzwojiic1#
确保您在BrowserWindow设置中将nodeIntegration设置为true,并将contextIsolation设置为false,如下所示:
BrowserWindow
nodeIntegration
true
contextIsolation
false
new BrowserWindow({ webPreferences: { nodeIntegration: true, contextIsolation: false }, });
默认情况下,nodeIntegration是false,这会阻止您在renderer-process中使用NPM模块,打开nodeIntegration将修复此问题。阅读更多注意:要从Renderer进程访问Node.js API,您需要将nodeIntegration首选项设置为true,将contextIsolation首选项设置为false。
免责声明,开启nodeIntegration会打开应用的安全漏洞。See Zac's answer如何修复它们。
gopyfrb32#
由于上面的答案会带来安全漏洞,因此您应该使用预加载脚本。preload scripts是一种将一些node.js函数暴露给渲染器进程的方法,而无需将nodeIntegration设置为true。查看有关www.electronjs.org上的预加载脚本的文档。
2条答案
按热度按时间fzwojiic1#
确保您在
BrowserWindow
设置中将nodeIntegration
设置为true
,并将contextIsolation
设置为false
,如下所示:默认情况下,
nodeIntegration
是false
,这会阻止您在renderer-process中使用NPM模块,打开nodeIntegration
将修复此问题。阅读更多
注意:要从Renderer进程访问Node.js API,您需要将
nodeIntegration
首选项设置为true,将contextIsolation
首选项设置为false。免责声明,开启
nodeIntegration
会打开应用的安全漏洞。See Zac's answer如何修复它们。gopyfrb32#
由于上面的答案会带来安全漏洞,因此您应该使用预加载脚本。preload scripts是一种将一些node.js函数暴露给渲染器进程的方法,而无需将nodeIntegration设置为true。查看有关www.electronjs.org上的预加载脚本的文档。