You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Electron中renderer.js报错Uncaught ReferenceError: require is not defined

Electron中renderer.js里require未定义的问题解决

你在renderer.js中调用require('fs')时持续出现Uncaught ReferenceError: require is not defined错误,即便已经开启nodeIntegration: true和contextIsolation: false仍未解决,可尝试以下排查和修复步骤:

1. 补充沙箱模式配置

高版本Electron默认启用沙箱模式,即便开启了Node.js集成,沙箱也会限制Node.js API的访问权限。在BrowserWindow的webPreferences中添加sandbox: false:

// main.js中修改BrowserWindow配置
const win = new BrowserWindow({
    width: 800,
    height: 600,
    webPreferences: {
        nodeIntegration: true,
        contextIsolation: false,
        sandbox: false // 新增该行配置
    }
})

2. 确认package.json核心配置

检查项目的package.json是否正确设置了入口文件,确保main字段指向main.js,启动脚本配置正常:

{
  "name": "your-app-name",
  "version": "1.0.0",
  "main": "main.js",
  "scripts": {
    "start": "electron ."
  }
}

3. 清除Electron缓存

旧缓存可能导致配置不生效,关闭应用后删除项目目录下的node_modules/.cache文件夹,再重新安装依赖并启动:

rm -rf node_modules/.cache
npm install
npm start

4. 验证renderer.js加载状态

打开开发者工具(Ctrl+Shift+I)切换到控制台,检查是否有renderer.js加载失败的404错误,确保index.html中<script src="./renderer.js"></script>的路径正确。

5. 测试最小化验证项目

创建极简测试项目排除其他配置干扰:

  • main.js仅保留创建窗口的核心代码
  • index.html只引入renderer.js,renderer.js仅写const fs = require('fs'); console.log(fs);
  • 启动后查看控制台是否正常输出fs模块内容

若以上步骤仍未解决,可尝试切换至Electron稳定版本(如20.x或25.x系列),部分极端版本可能存在特殊配置限制。

内容的提问来源于stack exchange,提问作者Berk Efe Keskin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 18:15:40