Electron结合React,在渲染进程中使用 node 模块
问题
将create-react-app
与electron
集成在了一个项目中。但是在React中无法使用electron
。当在React中使用require('electron')
时就会报TypeError: fs.existsSync is not a function
的错误。因为React中无法使用Node.js的模块.
解决方法1
利用window.require
引入
1 | const electron = window.require('electron') |
解决方法2
- 创建
preload.js
文件
在项目目录下新建preload.js
文件,该文件是预加载的js
文件,并且在该文件内可以使用所有的Node.js
的API
。在preload.js
中添加
1 | global.electron = require('electron') |
- 修改
main.js
文件
修改创建浏览器的入口代码,添加preload
配置项。将preload.js
作为预加载文件
1 | const mainWindow = new BrowserWindow({ |
或者修改piblic/index.html
文件
在<div id="root"></div>
前引入preload.js
文件
1 | <script>require('./preload.js')</script><div id="root"></div> |
最后在React
组件中如下使用electron
1 | const electron = window.electron; |
- 本文作者: 王不留行
- 本文链接: https://wyf195075595.github.io/2022/06/17/programming/electron/useQuestion/
- 版权声明: 本博客所有文章除特别声明外,均采用 MIT 许可协议。转载请注明出处!