Ubuntu下yarn start启动React开发服务器遇ERR_OSSL_EVP_UNSUPPORTED错误
解决React项目启动时
ERR_OSSL_EVP_UNSUPPORTED错误 问题场景
在Ubuntu系统中,通过npx create-react-app创建React项目并安装依赖后,执行yarn start启动开发服务器时,终端持续输出error:0308010C:digital envelope routines::unsupported错误(错误栈涉及webpack、crypto模块),同时浏览器无法正常访问项目。
问题原因
Node.js 17及以上版本默认启用了更严格的OpenSSL哈希算法,而旧版react-scripts(版本低于5.0)依赖的webpack版本不支持该算法,导致启动失败。
解决方案
方法1:临时启动(终端直接执行)
在启动命令前添加环境变量,临时启用旧版哈希算法支持:
NODE_OPTIONS=--openssl-legacy-provider yarn start
方法2:永久修改启动脚本
编辑项目根目录的package.json,修改scripts中的启动命令,永久加入环境变量:
"scripts": { "start": "NODE_OPTIONS=--openssl-legacy-provider react-scripts start", "build": "NODE_OPTIONS=--openssl-legacy-provider react-scripts build", "test": "react-scripts test", "eject": "react-scripts eject" }
修改完成后,直接运行yarn start即可启动项目。
方法3:升级react-scripts(推荐长期方案)
将react-scripts升级到5.0及以上版本,该版本已适配Node.js 17+的OpenSSL配置:
yarn upgrade react-scripts@latest
升级完成后,无需额外配置,直接执行yarn start即可正常启动。
内容的提问来源于stack exchange,提问作者Abhinav
相关产品推荐
相关产品推荐

