删除node_modules并升级Node.js后项目运行报错求助
解决 "digital envelope routines::unsupported" 错误
问题原因
你安装的最新版Node.js(v17及以上)默认启用了OpenSSL 3.0,而项目里的webpack版本偏旧,依赖的MD4哈希算法在OpenSSL 3.0中被标记为不安全并禁用,导致编译时触发该错误。
可行解决方案
方案1:临时启用旧版哈希算法(快速修复)
- 命令行临时设置环境变量:
在Windows命令行中,先执行以下命令,再启动项目:set NODE_OPTIONS=--openssl-legacy-provider npm run dev - 集成到package.json脚本(一劳永逸):
修改package.json中的scripts字段,把环境变量配置直接加在启动命令前:"scripts": { "dev": "set NODE_OPTIONS=--openssl-legacy-provider && webpack serve", "build": "set NODE_OPTIONS=--openssl-legacy-provider && webpack" }
方案2:升级webpack到兼容版本(长期解决方案)
webpack v5.60.0及以上已经适配了OpenSSL 3.0的要求,直接升级即可:
npm install webpack@latest --save-dev
同时建议同步升级webpack-dev-server等相关插件,避免版本不兼容:
npm install webpack-dev-server@latest --save-dev
方案3:降级Node.js到LTS版本(适合不想升级webpack的场景)
卸载当前的Node.js,安装v16.x系列的LTS版本,该版本默认使用OpenSSL 1.1.1,不会存在哈希算法的兼容性限制。
内容的提问来源于stack exchange,提问作者my bance
相关产品推荐
相关产品推荐

