(VUE_Npm)Error: error:0308010C:digital envelope routines::unsupported

目录

  • 1、背景
  • 2、根因
  • 3、解决方案
    • 1.打开终端,进行**Node变量设置**
      • Ⅰ、Linux & Mac OS (windows git bash)
      • Ⅱ、windows
    • 2、修改本地环境的package.json文件,在相关构建命令之前加入
    • 3、卸载Node.js 17+,并重新安装低版本Node.js,然后重新编译、启动

1、背景

为契合适用技术规范要求的前端脚手架,升级本地Node.js版本至v18.16.1,随后运行曾经正常运行的前端项目报错:Error: error:0308010C:digital envelope routines::unsupported

2、根因

在Node.js V17版本以后,采用的OpenSSL 3.01 库包,较之
OpenSSL 1.1.1 而言,对允许算法和密钥大小增加了严格的限制,因此会对此前的系统环境造成影响,需要重新编译

3、解决方案

1.打开终端,进行Node变量设置

Ⅰ、Linux & Mac OS (windows git bash)

export NODE_OPTIONS=--openssl-legacy-provider

Ⅱ、windows

set NODE_OPTIONS=--openssl-legacy-provider

2、修改本地环境的package.json文件,在相关构建命令之前加入

set NODE_OPTIONS=--openssl-legacy-provider & 

例如:

"scripts": {
    "build:test": "node script/build --env test",
    "build:pro": "node script/build --env pro",
    "build": "npm run build:pro",
    "start": "set NODE_OPTIONS=--openssl-legacy-provider & npm run start:proxy",

3、卸载Node.js 17+,并重新安装低版本Node.js,然后重新编译、启动


  1. OpenSSL_3.0_Wiki说明:OpenSSL_3.0_Wiki ↩︎

你可能感兴趣的:(问题处理,npm,前端,node.js)