electron项目踩坑--A JavaScript error occurred in the main process:document is not defined
前言
记录electron-vue项目开发中遇到的一个错误,运行时报错如图:
控制台报错如下:
ReferenceError: document is not defined
at Object.<anonymous> (E:\workspace\myElectron\my-electron-app\my-electron-app\node_modules\_element-ui@2.15.1@element-ui\lib\utils\dom.js:22:39)
at Object.<anonymous> (E:\workspace\myElectron\my-electron-app\my-electron-app\node_modules\_element-ui@2.15.1@element-ui\lib\utils\dom.js:235:3)
at Module._compile (module.js:642:30)
at Object.Module._extensions..js (module.js:653:10)
出错的提示是 document is nor defined 第一次遇到这样的错误,在element-ui中document没有定义,然后我就去对应的文件夹里找错,发现没什么用,然后找同学问,群里问,可能node环境的问题,紧接着我将本地的 node10 的版本升级到了14,删除依赖,再次安装依赖 ,一切能用的方法都用了,没办法,一行一行检查代码,发现是主进程中报错,去main.js中排查,找到了问题,原来 main.js 主线程中引入了渲染进程中的文件,而该文件需要访问 element-ui 这个文件,主进程中没有 document 这个对象,所以报错提示主进程中 document is not defined。
总结
Electron = Chromium + Node.js + Native API ,我的项目用的electron-vue脚手架搭建,引入了 element-ui 库,主进程负责了应用的中创建 BrowserWindow 实例以及各种应用程序事件,比如主进程中通知消息、Webcontents 事件、Webview新建窗口、注册全局的快捷键,创建系统菜单,响应自动更新等操作,应用程序入口指向主进程执行的 JavaScript 脚本,主进程使得nodejs 的一些 api 能在渲染进程中使用;渲染进程主要负责应用程序中用户界面,其实就是 webcontents 实例的网页,在渲染进程中能够使用dom提供的一些api外,能直接使用nodejs提供的api和electron 提供的 api (比如dialog弹窗,给鼠标右击绑定触发事件,window监听的一些断网测试等)。
以上就是本文的全部内容,希望给读者带来些许的帮助和进步,方便的话点个关注,小白的成长踩坑之路会持续更新一些工作中常见的问题和技术点。
electron项目踩坑--A JavaScript error occurred in the main process:document is not defined的更多相关文章
- [RN] windows7 安装 Realm Studio 后,打开报错 A JavaScript error occurred in the main process
windows7 安装 Realm Studio 后,打开报错 报错如下: A JavaScript error occurred in the main process Uncaught Exce ...
- SSMS错误:A connection was successfully established with the server, but then an error occurred during the login process
参考: 系统太慢,实在搞不清是哪里的问题,祭出重装大法 需要安装的工具还真多,先装主要的吧.VS2013, SQL SERVER 2012,搞定.. 连个数据库试试,出错了: A connection ...
- c# 使用MS SqlServer,连接成功,但是还报异常A connection was successfully established with the server, but then an error occurred during the login process. (provider: SSL Provider, error: 0。。。。
c# 使用MS SqlServer,连接成功,但是还报异常A connection was successfully established with the server, but then an ...
- 首个hybird商业项目踩坑总结
该文章是一个系列文章,是本人在Android开发的漫漫长途上的一点感想和记录,我会尽量按照先易后难的顺序进行编写该系列.该系列引用了<Android开发艺术探索>以及<深入理解And ...
- PhoneGap,Cordova[3.5.0-0.2.6]:生成Android项目时出现错误(An error occurred while listing Android targets)
我在升级到Cordova最新版本(3.5.0-0.2.6)后,在生成Android项目(cordova platform add android)时出现错误: Error: An error occu ...
- 创建Maven项目出现:An internal error occurred during: "Retrieving archetypes:". Java heap space 错误解决办法
首先说明一下网上的方法: 在Eclipse中创建Maven的Web项目时出现错误:An internal error occurred during: "Retrieving archety ...
- html2canvas在Vue项目踩坑-生成图片偏移不完整
背景 最近做一个Vue项目需求是用户长按保存图片,页面的数据是根据不同id动态生成的,页面渲染完生成内容图片让用户长按保存的时候,把整个页面都保存起来. 在项目遇到的坑是图片能生成,可是生成的图片总是 ...
- mpvue微信小程序项目踩坑记录
1.mpvue入门教程, http://mpvue.com/mpvue/quickstart.html # . 先检查下 Node.js 是否安装成功 $ node -v v8.9.0 $ npm - ...
- myeclipse启动项目时报:An internal error occurred during: "Launching TestSpring on Tomcat 7.x". java.lang.NullPointerException 解决方法
如果出现了上述的错误按照如下的3个步骤解决: 1.首先关闭MyEclipse工作空间. 2.然后删除工作空间下的 “/.metadata/.plugins/org.eclipse.core.runti ...
随机推荐
- 一周精彩内容分享(第 3 期):开工大吉的 B 面
这里记录过去一周,我看到的值得分享的东西. 一方面是整理记录一下自己一周的学习,另一方面也是期待自己有更多的输出,有更多的价值. 周刊开源(Github:wmyskxz/weekly),欢迎提交 is ...
- SSL (Secure Sockets Layer)
本文转载自SSL (Secure Sockets Layer) TLS简介 The Transport Layer Security (TLS) protocol aims primarily to ...
- 你见过老外的 Java 面试题吗 (上)?
前言 最近无聊的在逛某 tube 网站,本来想看看大家是怎么吐槽川普的,结果无意间点进了一个老外面试 Java 的视频,对于常年面试被吊打的我瑟瑟发抖,于是决定进去一探究竟. 毕竟不是专业的后台开发, ...
- 微信的两种access_token总结,不能混淆
大家需要弄清楚微信的网页授权token和公众号api调用授权token. 1.网页授权access_token 1.有效期:7200ms 2.微信网页授权是通过OAuth2.0机制实现的,在用户授权给 ...
- Django3.0 + nginx + uwsgi 部署
CentOS7.6 下部署Django3.0应用,使用nginx+uwsgi部署: 1. uwsgi部署 pip install uwsgi 在项目的根目录中,新建文件夹 conf, 然后进入conf ...
- 学习java之电脑的常用快捷键和DOS窗口下的常用命令
学习java之电脑的常用快捷键和DOS窗口下的常用命令 电脑一些常用的快捷键 win快捷键: 单独按Windows:显示或隐藏 "开始"功能表 Windows+BREAK:显示&q ...
- 树莓派4B安装官方Ubuntu20 Server版(64位)
欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...
- HoloWAN在连接路由器时应该选择WAN口还是LAN口,有什么区别?
HoloWAN在连接路由器时应该选择WAN口还是LAN口,有什么区别? 在解决问题前,需要连接到,路由器的WAN口和LAN口的作用不同. WAN口是对外的接口,连接广域网.当联网设备和路由器都开启了D ...
- jq日期与时间戳互相转换
方法1:$.extend({ myTime: { CurTime: function () { return Date.parse(new Date()) / 1000; }, DateToUnix: ...
- STM32 ADC详细篇(基于HAL库)
一.基础认识 ADC就是模数转换,即将模拟量转换为数字量 l 分辨率,读出的数据的长度,如8位就是最大值为255的意思,即范围[0,255],12位就是最大值为4096,即范围[0,4096] l ...