这是一个十分棘手又刁钻的问题。
使用electron-vue开发了一个桌面端程序,打包后本机可以正常安装、运行。由于需要断网使用,我就把网线拔了,开发环境直接挂了,桌面端应用无法启动。从此开始我的踩坑之路……
遇到的问题如下:
- 开发环境:内网环境可以正常使用,拔掉网线就报错;
- 正式环境(内网):装了6、7台win10 x64的系统,有一台无法启动,管理员身份运行没反应,管理员身份安装再启动不行,卸了重装也不行。于是,我从入口处开始加日志打印,结果一条日志都没有,任务管理器的进程中也没有这个进程,一秒都没出现过。
这一台奇葩的电脑,联网就可以正常启动,无论断网、内网就是没有任何反应。主要是不知道原因,就无从下手。
折腾了许久,想到可以用cmd
命令行直接启动程序,这样,就可以看到启动过程中的日志,类似于开发环境的控制台输入。
# 进入应用所在文件夹
.\应用名称.exe
果然报错了
dns.js:246
this._handle = new ChannelWrap();
^
Error: EFILE
at new Resolver (dns.js:246:20)
at dns.js:377:25
at dns.js:431:3
at NativeModule.compile (bootstrap_node.js:606:7)
at NativeModule.require (bootstrap_node.js:550:18)
at net.js:45:13
at net.js:1730:3
at NativeModule.compile (bootstrap_node.js:606:7)
at NativeModule.require (bootstrap_node.js:550:18)
at internal/child_process.js:6:13
……
跟开发环境断网出现的错误一模一样!!!
问题出现的原因
由electron核心引起的,没有插网线就会报错
解决方案
启用回环适配器。当电脑没有插网线的时候,利用回环适配器虚拟一个网络。这样就可以离线开发和离线使用electron应用了。
启用回环适配器的步骤:
1.打开设备管理器,选中自己的PC,然后选择 操作 菜单栏下的 添加过时硬件
2.弹出添加硬件向导后,下一步,选择 安装我手动从列表选择的硬件
image.png
- 下一步,选择 网络适配器
image.png
4.下一步,厂商 选择 Microsoft,型号 选择 Microsoft KM-TEST 环回适配器
image.png
5.下一步直接安装硬件
安装结束后,重启电脑,就不报错了
网友评论