最近在视频学习Electron.js的相关内容,发现在渲染进程中通过require引入js文件会提示require is not defined 的错误
<!-- 直接通过script标签引入成功 -->
<!-- <script src="./render-process/render.js"></script> -->
<!-- 通过require引入报错 -->
<script>
require('./render-process/render.js')
</script>
报错截图:
报错原因:
原因是因为官方在v5.0.0版本中将 nodeIntegration 的默认值改为了false,只需要在主进程中 BrowserWindow的nodeIntegration 改成false即可
官方描述:
解决方案:
win = new BrowserWindow({
width: 1000,
height: 800,
movable: true,
resizable: true,
webPreferences: {
nodeIntegration: true //此处改为true
}
});
PS:
虽然解决了require的问题,但是还有一事不明,官方在文档中申明将nodeIntegration的默认值改为false是为了安全性考虑。那如果仅仅是将全局的node支持打开的话,会不会有其他的安全隐患?