电子5.0.0“未捕获的ReferenceError:require未定义”

问题描述 投票:17回答:4

我最初使用电子稳定(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帖子,以便更容易找到遇到此问题的未来人。

javascript node.js electron require
4个回答
24
投票

事实证明,nodeIntegration在以前的电子版本中默认为true,但默认情况下为5.0.0。因此,将其设置为true可解决我的问题。没有在评论或电子页面上在线记录这一变化,我想我会做出这个自我回答的SO帖子,以便更容易找到遇到此问题的未来人。


13
投票

就像junvar所说,nodeIntegration现在默认为5.0.0。

electronjs FAQ有一些关于如何设置此值的示例代码:

let win = new BrowserWindow({
  webPreferences: {
    nodeIntegration: false
  }
})
win.show()

6
投票

junvar是对的,nodeIntegration在v5.0.0中默认为false。

这是Other ChangesRelease Notes for v5.0.0部分的最后一个声明,也在this PR中提到过


1
投票

我使用电子v4.1.4,每次我在我的应用程序上打开DevTools时都会发现这一点,这并不像电子没有穿过我们,只是为了表明阅读这种警告的重要性。

Screenshot-from-2019-06-04-09-27-38.png

© www.soinside.com 2019 - 2024. All rights reserved.