执行npm start启动React项目时遇digital envelope routines错误求助
解决React项目npm start时的ERR_OSSL_EVP_UNSUPPORTED错误
这个错误是因为Node.js 17+版本默认启用了OpenSSL 3.0的安全标准,而旧版react-scripts依赖的webpack使用了不再被支持的哈希算法导致的。以下是几种可行的解决方法:
方法一:临时启动(快速生效)
根据你的操作系统,在终端执行对应的启动命令:
- 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": { "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" }
如果需要跨平台兼容(Windows/Linux/macOS通用),可以先安装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", "test": "react-scripts test", "eject": "react-scripts eject" }
方法三:升级react-scripts(彻底解决,推荐)
如果你的项目是通过create-react-app创建的,直接升级react-scripts到兼容Node.js 18的最新版本:
npm install react-scripts@latest
升级完成后,直接执行npm start即可正常启动项目,无需额外配置。
内容的提问来源于stack exchange,提问作者ByteWiizard
相关产品推荐
相关产品推荐

