一个 Electron 应用总是有且只有一个主进程(main.js) 多个渲染进程(index.html index2.html ...) 最近一个项目需要在渲染进程中使用node模块
上个小demo index.html 这里引用node fs模块读取本地文件
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Hello World!</title>
</head>
<body>
<input id="btn" type="button" value="点我" />
<div id="showdata"></div>
</body>
<script src="./src/index.js"></script>
</html>
//inde.js
var fs = require("fs")
window.onload = function () {
var btn = document.getElementById("btn")
var showdata = document.getElementById("showdata")
btn.addEventListener("click", function (e) {
e.preventDefault()
fs.readFile("package.json", "utf-8", function (err, data) {
if (err) return;
showdata.innerHTML = data
})
})
}
运行后报错了
解决方法在new BrowserWindow时添加配置
webPreferences: {
nodeIntegration: true
}
原因: electron 5.0 后 nodeIntegration 默认为 false
相关资料 https://electronjs.org/docs/api/browser-window
Electron v5.0发行说明 https://github.com/electron/electron/releases/tag/v5.0.0