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 许可协议。转载请注明出处!
 
		
                
                LiYongci
              
                
                衔蝉
              
                
                哈希米