我最初使用电子稳定(4.x.x),并且能够在我的浏览器和渲染器进程中使用require
。我升级到电子测试版(5.0.0),因为我需要更新版本的节点,并在我的渲染器进程Uncaught ReferenceError: require is not defined
中遇到此错误消息。
谷歌搜索和浏览电子文档,我发现评论说错误可能是由于在初始化webPreferences.nodeIntegration
时将BrowserWindow
设置为false;例如:new BrowserWindwo({width, height, webPreferences: {nodeIntegration: false}});
。但我没有这样做,所以我认为其他问题必须是问题,并继续寻找解决方案。
解:
事实证明,nodeIntegration
在以前的电子版本中默认为true,但默认情况下为5.0.0。因此,将其设置为true可解决我的问题。没有在评论或电子页面上在线记录这一变化,我想我会做出这个自我回答的SO帖子,以便更容易找到遇到此问题的未来人。
事实证明,nodeIntegration
在以前的电子版本中默认为true,但默认情况下为5.0.0。因此,将其设置为true可解决我的问题。没有在评论或电子页面上在线记录这一变化,我想我会做出这个自我回答的SO帖子,以便更容易找到遇到此问题的未来人。
就像junvar所说,nodeIntegration
现在默认为5.0.0。
electronjs FAQ有一些关于如何设置此值的示例代码:
let win = new BrowserWindow({
webPreferences: {
nodeIntegration: false
}
})
win.show()
junvar是对的,nodeIntegration
在v5.0.0中默认为false。
这是Other Changes
的Release Notes for v5.0.0部分的最后一个声明,也在this PR中提到过