美文网首页
05、部分系统无法启动electron应用,dns报错EFILE

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

作者: 仙人掌开不了花 | 来源:发表于2021-04-09 09:29 被阅读0次

    这是一个十分棘手又刁钻的问题。
    使用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程序双击启动无效

    相关文章

      网友评论

          本文标题:05、部分系统无法启动electron应用,dns报错EFILE

          本文链接:https://www.haomeiwen.com/subject/kesvkltx.html