启动AGE Viewer 1.0.0-rc2时遭遇'digital envelope'错误求助
解决AGE Viewer 1.0.0-rc2启动时的
error:0308010C:digital envelope routines::unsupported错误 问题背景
启动AGE Viewer 1.0.0-rc2时触发error:0308010C:digital envelope routines::unsupported错误,运行环境为Node.js v18.12.1、Windows系统、Microsoft Edge浏览器108.0.1462.54,已尝试在frontend/package.json的start脚本中添加--openssl-legacy-provider但未解决,执行npm run setup和npm run start后报错。
有效解决方案
1. 全局设置NODE_OPTIONS环境变量(Windows)
直接在终端设置环境变量,让Node.js启动时自动加载legacy provider,无需修改package.json:
- 命令提示符(CMD):
set NODE_OPTIONS=--openssl-legacy-provider npm run start - PowerShell:
$env:NODE_OPTIONS="--openssl-legacy-provider" npm run start
如果需要永久生效,可以在系统环境变量中添加NODE_OPTIONS,值为--openssl-legacy-provider。
2. 检查并修正package.json脚本中的参数位置
如果项目的start脚本是间接调用其他子脚本(比如报错中的front脚本),需要将--openssl-legacy-provider添加到实际执行Node命令的脚本中:
示例package.json修改:
{ "scripts": { "front": "node --openssl-legacy-provider scripts/start.js", "start": "npm run front" } }
确保参数直接加在node命令后,而非外层脚本的末尾。
3. 升级react-scripts版本
从报错栈可见项目使用了旧版react-scripts,其依赖的Webpack版本不兼容Node.js 18的OpenSSL配置,升级到最新版可解决:
cd frontend npm install react-scripts@latest --save npm run setup npm run start
4. 降级Node.js到16.x版本
Node.js 18默认启用了更严格的OpenSSL算法,部分旧版工具链不支持,使用nvm(Windows版)管理Node版本:
- 安装Windows版nvm
- 打开终端执行:
nvm install 16.20.0 nvm use 16.20.0 - 重新执行
npm run setup和npm run start
内容的提问来源于stack exchange,提问作者Nimra Tahir
相关产品推荐
相关产品推荐

