切换至Node.js v18后出现OpenSSL初始化错误求助
解决Node.js v18下的ERR_OSSL_EVP_UNSUPPORTED错误
这个错误是因为Node.js v18默认启用了OpenSSL 3.0的严格算法规则,而项目中部分依赖仍在使用已被弃用的旧版SSL加密算法导致的,以下是几种可行的解决方法:
方法一:临时启用旧版SSL算法(开发环境适用)
在启动项目的命令前添加环境变量,强制Node.js使用旧版SSL提供程序:
- Linux/macOS终端:
NODE_OPTIONS=--openssl-legacy-provider npm start - Windows命令提示符(cmd):
set NODE_OPTIONS=--openssl-legacy-provider && npm start - Windows PowerShell:
$env:NODE_OPTIONS="--openssl-legacy-provider"; npm start
方法二:修改package.json启动脚本(持久化配置)
直接在项目的package.json的scripts字段中添加环境变量,避免每次手动输入:
单平台配置
比如Create React App项目:
"scripts": { "start": "NODE_OPTIONS=--openssl-legacy-provider react-scripts start", "build": "NODE_OPTIONS=--openssl-legacy-provider react-scripts build" }
跨平台兼容(推荐)
如果需要在多系统下运行,可使用cross-env包统一环境变量:
- 安装依赖:
npm install cross-env --save-dev - 修改脚本:
"scripts": { "start": "cross-env NODE_OPTIONS=--openssl-legacy-provider react-scripts start", "build": "cross-env NODE_OPTIONS=--openssl-legacy-provider react-scripts build" }
方法三:升级项目依赖(生产环境推荐)
从根源解决问题,升级项目中未适配Node.js v18的依赖包:
- 若使用webpack,更新到最新兼容版本:
npm update webpack - 若为Create React App项目,升级react-scripts:
npm install react-scripts@latest
内容的提问来源于stack exchange,提问作者John Driscoll
相关产品推荐
相关产品推荐

