运行React项目时出现Webpack相关报错问题
解决React项目运行时的
error:0308010C:digital envelope routines::unsupported报错 
报错原因
Node.js 17及以上版本默认启用OpenSSL 3.0,其中部分旧版加密算法被标记为不安全,而你的项目依赖的webpack(或Create React App)版本未适配这一变化,导致启动失败。
解决方案
- 临时启动方案:在终端执行启动命令前添加环境变量,强制使用旧版加密算法:
- 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
- Windows(CMD):
- 永久配置方案:修改项目根目录的
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" } - 依赖升级方案:如果项目基于Create React App,直接升级
react-scripts到最新版本,新版本已兼容Node.js 17+:npm install react-scripts@latest
内容的提问来源于stack exchange,提问作者Telirw
相关产品推荐
相关产品推荐

