You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

运行npm run serve启动Vue项目报error:0308010C错误如何解决

报错原因

核心错误标识:
错误码:ERR_OSSL_EVP_UNSUPPORTED
错误描述:Error: error:0308010C:digital envelope routines::unsupported
运行环境:Node.js v17.2.0

该错误是Node.js版本与项目依赖的webpack版本的OpenSSL兼容性问题导致:
Node.js 17及更高版本默认集成了OpenSSL 3.0,该版本移除了对旧版不安全哈希算法的默认支持。而你当前的Vue项目使用的是旧版vue-cli,底层依赖webpack 4,webpack 4的文件哈希计算逻辑调用了已被OpenSSL 3.0废弃的算法,因此启动开发服务时触发报错。

解决方案

方案1:启用OpenSSL旧版提供程序(最快生效,无需修改依赖版本)

通过配置环境变量让OpenSSL启用旧版算法支持,不需要调整任何依赖版本:

  • 临时生效(仅当前终端窗口有效):
    • Windows cmd终端:先执行set NODE_OPTIONS=--openssl-legacy-provider,再运行npm run serve
    • Windows PowerShell终端:先执行$env:NODE_OPTIONS="--openssl-legacy-provider",再运行npm run serve
    • Mac/Linux终端:先执行export NODE_OPTIONS=--openssl-legacy-provider,再运行npm run serve
  • 永久生效(项目内配置,每次启动自动生效):
    直接修改项目package.json中的serve脚本:
    仅Windows环境使用:
    {
      "scripts": {
        "serve": "set NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service serve",
        "build": "set NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service build"
      }
    }
    
    需要跨Windows/Mac/Linux环境使用的话,先安装跨平台环境变量工具:
    npm install cross-env --save-dev
    再修改脚本:
    {
      "scripts": {
        "serve": "cross-env NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service serve",
        "build": "cross-env NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service build"
      }
    }
    

方案2:降级Node.js到16.x LTS版本(长期稳定,无需修改项目配置)

Node.js 16.x是官方长期支持版本,默认使用OpenSSL 1.1.1,完全兼容旧版webpack的计算逻辑。卸载当前Node.js v17.2.0,安装16.x系列LTS版本,重新执行npm install安装依赖后即可正常启动项目。

方案3:升级项目webpack到5.x版本(彻底修复兼容问题)

webpack 5已经适配了OpenSSL 3.0的算法要求,你可以将项目的@vue/cli升级到支持webpack 5的版本,或者手动升级webpack相关依赖到5.x系列,升级完成后即可正常启动项目。

内容的提问来源于stack exchange,提问作者Alvis Bao

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.23 14:24:02