npx create-react-app创建项目后npm start报ERR_OSSL_EVP_UNSUPPORTED错
解决React项目启动报错:error:0308010C:digital envelope routines::unsupported
这个错误是Node.js 17+版本默认启用了新的OpenSSL哈希算法,而旧版create-react-app依赖的webpack版本不兼容该算法导致的。以下是几种可行的解决方案:
方案一:临时添加环境变量启动
根据你的操作系统执行对应命令:
- 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
方案二:修改package.json脚本永久生效
打开项目根目录的package.json,找到scripts字段,修改start和build命令:
"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即可。
方案三:降级Node.js版本(可选)
如果不想修改配置,可将Node.js降级到16.x版本(该版本默认使用旧哈希算法),推荐用nvm管理版本:
- 安装nvm后,执行
nvm install 16 - 切换版本:
nvm use 16 - 重新安装依赖:
npm install,再启动项目npm start
内容的提问来源于stack exchange,提问作者Muhammad Usman
相关产品推荐
相关产品推荐

