解决:Uncaught ReferenceError: require is not defined

blog.csdn.net 2021-06-14 15:10 当我们使用electron的时候,想要使用nodejs以及第三方的时候出现Uncaught ReferenceError: require is not defined,这种问题的时候,也许并不是我们的问题而是少了配置。也可能是版本的问题。 如图: 而我们只需要再加一个配置,这个错误提示就会消失, 补充: nodeIntegration Boolean (可选) – 是否启用Node integration. 默认值为 false. contextIsolation Boolean (可选) – 是否在独立 JavaScript 环境中运行 Electron API和指定的preload 脚本. 默认值为 false. 预加载脚本所运行的上下文环境只能访问其自身专用的文档和全局窗口,其自身一系列内置的JavaScript (Array, Object, JSON, 等等) 也是如此,这些对于已加载的内容都是不可见的。 Electron API 将只在预加载脚本中可用,在已加载页面中不可用。 这个选项应被用于加载可能不被信任的远程内容时来确保加载的内容无法篡改预加载脚本和任何正在使用的Electron api。 该选项使用的是与Chrome内容脚本相同的技术。 你可以在开发者工具Console选项卡内顶部组合框中选择 ‘Electron Isolated Context’条目来访问这个上下文。 更多请看文档:Electron文档

```
const mainWindow = new BrowserWindow({
        width: 800,
        height: 600,
        webPreferences: {
            preload: path.join(__dirname, 'preload.js'),
            // 集成 node
            nodeIntegration: true,
            // 关闭上下文隔离,兼容 require 引入
            contextIsolation: false,
        }
    });
```

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注