Electron结合React,在渲染进程中使用 node 模块

问题

create-react-appelectron集成在了一个项目中。但是在React中无法使用electron。当在React中使用require('electron')时就会报TypeError: fs.existsSync is not a function的错误。因为React中无法使用Node.js的模块.

解决方法1

利用window.require引入

const electron = window.require('electron')

解决方法2

  1. 创建preload.js文件

在项目目录下新建preload.js文件,该文件是预加载的js文件,并且在该文件内可以使用所有的Node.jsAPI。在preload.js中添加

global.electron = require('electron')
  1. 修改main.js文件

修改创建浏览器的入口代码,添加preload配置项。将preload.js作为预加载文件

const mainWindow = new BrowserWindow({
width: 800,
height: 600,
// frame: false,
webPreferences: {
preload: path.join(__dirname, 'preload.js'),
nodeIntegration : true,
           contextIsolation: false  //Electron 12.0以上版本需要的额外设置此项
}
})

或者修改piblic/index.html文件

<div id="root"></div>前引入preload.js文件

<script>require('./preload.js')</script><div id="root"></div>

最后在React组件中如下使用electron

const electron = window.electron;

最新文章

  1. 【原创】cs+html+js+css模式(六):改造ajax.js,从原来的原生态js修改为依赖于jquery插件
  2. PHP面试题汇总
  3. C# 常用结构
  4. 防止WordPress利用xmlrpc.php进行暴力破解以及DDoS
  5. Android PermissionChecker 权限全面详细分析和解决方案
  6. android代码片段一
  7. VPN pptp on linuxmint13/ubuntu12.04/debian VPS
  8. 基于Python的数据分析(1):配置安装环境
  9. bootstrap的datepicker在选择日期后调用某个方法
  10. Servlet简单概念和开发小总结
  11. 快速幂-hdu1097
  12. opencv车流量统计算法
  13. ClusterControl 强大免费数据管理工具
  14. ASP.NET开发,从二层至三层,至面向对象 (5)
  15. JS去掉字符串前后空格或去掉所有空格的用法
  16. Hibernate 批处理
  17. PRML2-概率分布
  18. Vue的过渡或动画
  19. 【Mac双系统设置系统默认启动系统】解决方式
  20. oracle之 关闭透明大页

热门文章

  1. jmeter设置为中文
  2. 『GoLang』包
  3. 关于java中BigDecimal的简介
  4. CentOS7 Docker容器无法ping通宿主机ip问题解决记录
  5. Java中的原子操作
  6. 微服务架构理论&amp;SpringCloud
  7. 每日总结:charcter方法(2021.10.5)
  8. PHP文件上传漏洞与一句话木马
  9. AgileConfig 轻量级配置中心 1.5 发布 - 支持多环境配置
  10. [软工顶级理解组] Beta阶段测试报告