构建和打包通过得很好,但在运行应用程序后,我在控制台Uncaught ReferenceError: require is not defined - at Object.electron - at __webpack_require__
看到一个错误。
我们使用 Typescript、electron-builder、webpack。
👋 感谢您在这里打开第一期! 如果您要报告 🐞 错误,请确保包含重现它的步骤。 我们在这个 repo 上遇到了很多问题,所以请耐心等待,我们会尽快回复你。
为了帮助我们更轻松地调查您的问题,请遵循贡献指南。
根据我们的重大更改文档,nodeIntegration 的默认值从 true 更改为 false。
如何找到重大更改文档?
在你的 index.js
const w = 新浏览器窗口({
网络首选项:{
节点集成:真
}
})
您可以使用 Browserify 来解决您的问题,无论是网页还是网站。 但是由于您使用 Electron 来呈现 html,您只需要在 web 首选项下将节点集成设置为 true:如显示here 。
在你的 index.js
const w = 新浏览器窗口({
网络首选项:{
节点集成:真
}
})
谢谢! 已经解决了我的问题。
npm i @angular-devkit/build-angular -D
新建 BrowserWindow 时需要将 webPreferences.nodeIntegration 更改为 true
mainWindow = new BrowserWindow({
width: 1000,
height: 600,
webPreferences: {
nodeIntegration: true
}
});
谢谢@bokele你是一个
将nodeIntegration
为 true 是最简单的方法,但是正如文档所说,保持它为 false 更安全,我发现这个https://stackoverflow.com/questions/52236641/electron-ipc-and-nodeintegration可能帮助未来的读者。
实际上我添加了 nodeIntergration = true 但仍然没有工作
@tolbxela 非常感谢伙伴
它对我不起作用,因为webPreferences.contextIsolation
被设置为 true。 尽管https://www.electronjs.org/docs/tutorial/context-isolation#security-考虑事项,但在将该选项设置为 false 时要小心。
最有用的评论
在你的 index.js
const w = 新浏览器窗口({
网络首选项:{
节点集成:真
}
})