如何在Electron.js + Next.js(Nextron)中启用上下文隔离

5jvtdoz2  于 2023-02-06  发布在  Electron
关注(0)|答案(1)|浏览(375)

我正在使用Nextron(Electron.js + Next.js)开发桌面应用程序。
我尝试过使用以下命令从BrowserWindow参数启用上下文隔离:

contextIsolation: true

但似乎不能直接工作,因为它会产生以下错误:

Uncaught ReferenceError: global is not defined
    at react-refresh.js?ts=1670419316858:10:1

Uncaught ReferenceError: global is not defined
    at webpack.js?ts=1670419316858:712:12
    at webpack.js?ts=1670419316858:1209:13
    at webpack.js?ts=1670419316858:1220:12

Uncaught ReferenceError: global is not defined
    at main.js?ts=1670419316858:9:1

Uncaught ReferenceError: global is not defined
    at _app.js?ts=1670419316858:9:1

Uncaught ReferenceError: global is not defined
    at login.js?ts=1670419316858:9:1

Nextron版本为:8.2.0和电子版本为:20.1.0
有没有人经历过这个问题并解决了它?在Nextron应用程序中启用上下文隔离的过程是什么?
谢谢。

jbose2ul

jbose2ul1#

不要使用上下文隔离(我同意Electron团队的理由,如果你曾经计划加载第三方网站,甚至你自己的网站有第三方javascript运行,因为他们可以访问你的IPC调用).然而,如果你把应用程序作为一个安全的应用程序,从来没有加载第三方网站或脚本,那么关闭它是好的.
如果您仍然想继续,请修改下一个. config. js:

if (!isServer) {
  config.target = 'electron-renderer';
  config.node = {
    __dirname: true,
  };
}

config.output.globalObject = 'this';

相关问题