ReactJS无法启动Live Server,报ERR_OSSL_EVP_UNSUPPORTED错误求助
解决React项目启动报错:error:0308010C:digital envelope routines::unsupported
终端启动React项目Live Server时出现如下错误,无法访问项目页面:
Error: error:0308010C:digital envelope routines::unsupported at new Hash (node:internal/crypto/hash:71:19) at Object.createHash (node:crypto:133:10) at module.exports (D:\ReactJS\JavaScript Mastery\crypto_app\node_modules\webpack\lib\util\createHash.js:90:53) at NormalModule._initBuildHash (D:\ReactJS\JavaScript Mastery\crypto_app\node_modules\webpack\lib\NormalModule.js:386:16) at handleParseError (D:\ReactJS\JavaScript Mastery\crypto_app\node_modules\webpack\lib\NormalModule.js:434:10) at D:\ReactJS\JavaScript Mastery\crypto_app\node_modules\webpack\lib\NormalModule.js:466:5 at D:\ReactJS\JavaScript Mastery\crypto_app\node_modules\webpack\lib\NormalModule.js:327:12 at D:\ReactJS\JavaScript Mastery\crypto_app\node_modules\loader-runner\lib\LoaderRunner.js:373:3 at iterateNormalLoaders (D:\ReactJS\JavaScript Mastery\crypto_app\node_modules\loader-runner\lib\LoaderRunner.js:214:10) at iterateNormalLoaders (D:\ReactJS\JavaScript Mastery\crypto_app\node_modules\loader-runner\lib\LoaderRunner.js:221:10) at D:\ReactJS\JavaScript Mastery\crypto_app\node_modules\loader-runner\lib\LoaderRunner.js:236:3 at runSyncOrAsync (D:\ReactJS\JavaScript Mastery\crypto_app\node_modules\loader-runner\lib\LoaderRunner.js:130:11) at iterateNormalLoaders (D:\ReactJS\JavaScript Mastery\crypto_app\node_modules\loader-runner\lib\LoaderRunner.js:232:2) at Array.<anonymous> (D:\ReactJS\JavaScript Mastery\crypto_app\node_modules\loader-runner\lib\LoaderRunner.js:205:4) at Storage.finished (D:\ReactJS\JavaScript Mastery\crypto_app\node_modules\enhanced-resolve\lib\CachedInputFileSystem.js:55:16) at D:\ReactJS\JavaScript Mastery\crypto_app\node_modules\enhanced-resolve\lib\CachedInputFileSystem.js:91:9 D:\ReactJS\JavaScript Mastery\crypto_app\node_modules\react-scripts\scripts\start.js:19 throw err; ^ Error: error:0308010C:digital envelope routines::unsupported at new Hash (node:internal/crypto/hash:71:19) at Object.createHash (node:crypto:133:10) at module.exports (D:\ReactJS\JavaScript Mastery\crypto_app\node_modules\webpack\lib\util\createHash.js:90:53) at NormalModule._initBuildHash (D:\ReactJS\JavaScript Mastery\crypto_app\node_modules\webpack\lib\NormalModule.js:386:16) at D:\ReactJS\JavaScript Mastery\crypto_app\node_modules\webpack\lib\NormalModule.js:418:10 at D:\ReactJS\JavaScript Mastery\crypto_app\node_modules\webpack\lib\NormalModule.js:293:13 at D:\ReactJS\JavaScript Mastery\crypto_app\node_modules\loader-runner\lib\LoaderRunner.js:367:11 at D:\ReactJS\JavaScript Mastery\crypto_app\node_modules\loader-runner\lib\LoaderRunner.js:233:18 at context.callback (D:\ReactJS\JavaScript Mastery\crypto_app\node_modules\loader-runner\lib\LoaderRunner.js:111:13) at D:\ReactJS\JavaScript Mastery\crypto_app\node_modules\babel-loader\lib\index.js:51:103 { opensslErrorStack: [ 'error:03000086:digital envelope routines::initialization error' ], library: 'digital envelope routines', reason: 'unsupported', code: 'ERR_OSSL_EVP_UNSUPPORTED' }
已尝试多种常规方案但未解决,求有效修复方法。
有效修复方法
方法1:临时启用旧版OpenSSL算法支持
根据终端类型,在启动命令前添加环境变量:
- Windows(CMD):
set NODE_OPTIONS=--openssl-legacy-provider && npm start - Windows(PowerShell):
$env:NODE_OPTIONS="--openssl-legacy-provider"; npm start - macOS/Linux:
NODE_OPTIONS=--openssl-legacy-provider npm start
方法2:修改package.json启动脚本(永久生效)
打开项目根目录的package.json,修改scripts中的启动命令,添加参数:
"scripts": { "start": "react-scripts --openssl-legacy-provider start", "build": "react-scripts --openssl-legacy-provider build", "test": "react-scripts test", "eject": "react-scripts eject" }
保存后执行npm start即可。
方法3:降级Node.js版本
该错误多因Node.js 17+版本默认禁用了旧加密算法导致,降级到16.x LTS版本可解决:
- 安装Node版本管理器(nvm)
- 执行
nvm install 16安装16.x版本 - 执行
nvm use 16切换版本 - 重新启动项目:
npm start
方法4:更新react-scripts版本
旧版react-scripts可能存在兼容性问题,更新到最新版:
npm install react-scripts@latest
更新完成后重新启动项目。
内容的提问来源于stack exchange,提问作者Someoneneedshelp
相关产品推荐
相关产品推荐

