electron中的renderer.js文件出现错误,报错信息为Uncaught ReferenceError: exports is not defined

当 Electron 运行时,遇到了以下错误。

Uncaught ReferenceError: exports is not defined     at renderer.js:2

当尝试在渲染进程中使用nodejs时发生了上述错误。

简单的解决方案

在创建窗口时启用nodeIntegration,但是出于安全考虑,启用它并不是一个好选择。

  const mainWindow = new BrowserWindow({
    height: 600,
    webPreferences: {
      preload: path.join(__dirname, "preload.js"),
      nodeIntegration: true // 追加
    },
    width: 800,
  });

在index.html中定义exports。

<script> var exports = {}; </script>

注意整合

由于在渲染进程中使用Node.js功能可能导致XSS漏洞造成的损害更大,默认情况下禁用了Node.js功能。
另一种避免方法是使用contextBridge。