Windows10运行vue-element-admin错误解决流程

193 阅读3分钟

前言

最近打算使用vue-element-admin作为项目的后台管理,但运行时一直失败,经过不断的尝试终于解决了。在此记录解决流程,以作来日遇到此问题参考。如果能帮助到大家就再好不过了。

提示: 使用npm install --registry=https://registry.npm.taobao.org 代替 npm install

解决流程

默认大家已经从github上下载了最新版。

  • 第一次运行npm install出现一些乱七八糟的错误

    首先,一不做,二不休。我直接将node版本升级到最新版本(清理缓存C:\Users\用户\AppData\Roaming\npm),然后再次运行,发现错误就不同了。

  • 第二次运行,发现访问不到git上的包导致的错误

    npm ERR! code 128
    npm ERR! A git connection error occurred
    npm ERR! command git --no-replace-objects ls-remote ssh://git@github.com/nhn/raphael.git
    

    使用这个命令 将ssh 下载变成https就行了

    git config --global url."https://".insteadOf ssh://git@
    
  • 再次运行npm install

    发现依然错误,尝试运行ssh -T git@github.com

    如果返回结果不是:

    $  ssh -T git@github.com
    Hi [git用户名]! You've successfully authenticated, but GitHub does not provide shell access.
    

    那么需要配置git本地密钥:

    # 桌面右键,git bash here
    # 输入以下
    ssh-keygen -t rsa -C “你的邮箱名称”
    # overwrite 输入y
    # 输入密码的时候直接回车
    # 重复密码输入还是直接回车,然后把github上以前的sshkeys删除,c盘->用户->你的用户名->.ssh->id_rsa.pub里边的字符添加到 github右上角头像->settings->ssh & GPG ->Add sshKeys
    第二个大框里输入确认即可
    

    完成后再次运行ssh -T git@github.com检查是否配置成功

  • 以为已经解决了所有问题。但又出现了问题;提示gyp错误,然后给了地址https://github.com/nodejs/node-gyp#on-windows

    经过研究后,需要安装Visual Studio 2022

    于是,到官网下载了社区版安装。

    下载位置截图

    安装完成后会自动弹出以下窗口,根据你要使用Visual Studio所做的事情选择不同的功能集和工作负载,同时选择安装路径(建议使用默认安装路径)。在窗口的上方还有单个组件、语言包、安装位置这些选项,可以不用管,均为默认值。最后点击安装。

    安装c++组件截图

    安装完成后,为了保险,我重启了一下电脑。

    到了这里,想着应该就完成了吧,结果又出现了意外。

  • 第n次运行npm install,又报错了,错误如下:

    Error: error:0308010C:digital envelope routines::unsupported
    

    经过又一番研究,发现是node新版本的鬼(当时给我气得)。

    具体原因:

    因为 node.js V17版本中最近发布的OpenSSL3.0, 而OpenSSL3.0对允许算法和密钥大小增加了严格的限制,可能会对生态系统造成一些影响。故此以前的项目在升级 nodejs 版本后会报错。

    解决方案:

    vue-element-admin根目录下,编辑package.json

    "scripts": {
        "serve": "set NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service serve",
        "dev": "set NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service serve",
      },
    

    添加了set NODE_OPTIONS=--openssl-legacy-provider

  • 最后一次运行npm install,这次完美成功。

参考文档