错误信息 “digital envelope routines::unsupported” 通常出现在使用 Node.js 版本 17 或更高版本时,这些版本中集成了 OpenSSL 3.0,后者对加密算法和密钥大小有更严格的限制。
报错原因
Node.js v17 及更高版本中集成的 OpenSSL 3.0 对加密算法和密钥大小增加了严格的限制,导致一些旧的加密方法不再受支持,从而引发此错误。具体错误信息如下:
text
Copy Code
Error: error:0308010C:digital envelope routines::unsupported
解决方案
设置环境变量:
Linux 和 Mac OS:在终端中输入 export NODE_OPTIONS=–openssl-legacy-provider。
Windows:在命令行中输入 set NODE_OPTIONS=–openssl-legacy-provider。
安装旧版本的 Node.js:
使用 Node Version Manager (nvm) 安装一个旧版本的 Node.js,例如 v16.x 或 v14.x。安装命令如下:
bash
Copy Code
nvm install 16
nvm use 16
更新相关依赖:
确保所有依赖项都是最新的,或者单独更新有问题的依赖项:
bash
Copy Code
npm update
npm update