Electron 启用 nodeIntegration 后页面空白怎么办?
我刚学 Electron,想在渲染进程里用 Node.js 的模块,就把主进程里的 nodeIntegration 设成 true 了。结果页面直接变空白,控制台也没报错,但内容完全不显示。
我试过把 contextIsolation 关掉,还是不行。是不是漏了什么安全配置?现在代码是这样:
const mainWindow = new BrowserWindow({
webPreferences: {
nodeIntegration: true,
contextIsolation: false
}
});
mainWindow.loadFile('index.html');
本地 HTML 文件很简单,就一个 div 和 script 标签,之前没开 nodeIntegration 时能正常显示。现在一开就白屏,到底哪里出问题了?
首先在主进程里加上这个配置:
然后看看 HTML 文件里的 script 标签,确保没有用到 require 这种 Node.js 特有的模块引入方式,除非你在 preload 脚本里明确允许了。
如果还不行,试试在 HTML 里加上一个简单的 console.log('test'),确认页面确实有加载。有时候白屏可能只是因为渲染进程卡住了。这种情况下重启应用或者清理缓存通常能解决。
最后提醒下,nodeIntegration 打开后要注意安全性,特别是加载远程内容的时候。不过既然你现在是本地调试,先把功能跑通再说。开发过程就是这样,一点点试错慢慢来吧。