React新手执行npm start启动项目报ERR_OSSL_EVP_UNSUPPORTED错误求助
错误原因
该ERR_OSSL_EVP_UNSUPPORTED报错是Node.js v17及更高版本默认启用OpenSSL 3.0导致的,你项目中使用的旧版react-scripts依赖的webpack版本调用了OpenSSL 3.0已弃用的加密算法,启动时触发兼容性校验失败。
可选择的修复方案
- 方案1:单次启动临时生效
Windows cmd环境执行命令:set NODE_OPTIONS=--openssl-legacy-provider && npm start
Windows PowerShell环境执行命令:$env:NODE_OPTIONS="--openssl-legacy-provider"; npm start
Mac/Linux终端环境执行命令:NODE_OPTIONS=--openssl-legacy-provider npm start - 方案2:修改项目配置永久生效
打开项目根目录的package.json文件,修改scripts字段的对应配置:
如果是Mac/Linux系统,去掉命令开头的"scripts": { "start": "set NODE_OPTIONS=--openssl-legacy-provider && react-scripts start", "build": "set NODE_OPTIONS=--openssl-legacy-provider && react-scripts build", "test": "set NODE_OPTIONS=--openssl-legacy-provider && react-scripts test", "eject": "react-scripts eject" }set即可;需要跨平台兼容的话,可先执行npm install cross-env -D安装跨环境工具,再把命令修改为cross-env NODE_OPTIONS=--openssl-legacy-provider react-scripts start。 - 方案3:降级Node.js到兼容版本
卸载当前Node.js v17,安装v16.x或v14.x的LTS(长期支持)版本即可,这两个版本的OpenSSL依赖和旧版react-scripts完全兼容,无需额外修改项目配置。 - 方案4:升级项目依赖适配新版Node
执行命令npm install react-scripts@latest把项目的react-scripts升级到v5.0.0及以上版本,该版本已完成OpenSSL 3.0适配,升级完成后直接执行npm start即可正常启动。
内容的提问来源于stack exchange,提问作者gcarter85
相关产品推荐
相关产品推荐

