最近在视频学习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支持打开的话,会不会有其他的安全隐患?

 

02-12 20:21