05、部分系统无法启动electron应用,dns报错EFILE

这是一个十分棘手又刁钻的问题。
使用electron-vue开发了一个桌面端程序,打包后本机可以正常安装、运行。由于需要断网使用,我就把网线拔了,开发环境直接挂了,桌面端应用无法启动。从此开始我的踩坑之路……

遇到的问题如下:

  1. 开发环境:内网环境可以正常使用,拔掉网线就报错;
  2. 正式环境(内网):装了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,然后选择 操作 菜单栏下的 添加过时硬件

image.png

2.弹出添加硬件向导后,下一步,选择 安装我手动从列表选择的硬件
image.png

  1. 下一步,选择 网络适配器
    image.png

    4.下一步,厂商 选择 Microsoft型号 选择 Microsoft KM-TEST 环回适配器
    image.png

    5.下一步直接安装硬件
    安装结束后,重启电脑,就不报错了
参考文档

1.electron程序双击启动无效

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容