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
相关产品推荐
相关产品推荐

