本文介绍: 老项目运行报错Error: error:0308010C:digital envelope routines::unsupported
环境
Node.js :v18.12.1
开发工具:VsCode
运行项目报错如下:
//报错主要提示,第一行。
Error: error:0308010C:digital envelope routines::unsupported
at new Hash (node:internal/crypto/hash:71:19)
at Object.createHash (node:crypto:133:10)
at BulkUpdateDecorator.hashFactory (D:editingProisc-web-dev-jiangsunode_moduleswebpacklibutilcreateHash.js:145:18)
at BulkUpdateDecorator.update (D:editingProisc-web-dev-jiangsunode_moduleswebpacklibutilcreateHash.js:46:50) at OriginalSource.updateHash (D:editingProisc-web-dev-jiangsunode_moduleswebpacknode_moduleswebpack-sourceslibOriginalSource.js:131:8)
at NormalModule._initBuildHash (D:editingProisc-web-dev-jiangsunode_moduleswebpacklibNormalModule.js:888:17)
at handleParseResult (D:editingProisc-web-dev-jiangsunode_moduleswebpacklibNormalModule.js:954:10)
at D:editingProisc-web-dev-jiangsunode_moduleswebpacklibNormalModule.js:1048:4
at processResult (D:editingProisc-web-dev-jiangsunode_moduleswebpacklibNormalModule.js:763:11)
at D:editingProisc-web-dev-jiangsunode_moduleswebpacklibNormalModule.js:827:5 {
opensslErrorStack: [ 'error:03000086:digital envelope routines::initialization error' ],
library: 'digital envelope routines',
reason: 'unsupported',
Node.js v18.12.1 //当前版本号。
原因
Node.js 的版本太高,在 Node.js V17 版本中发布的 OpenSSl3.0 对允许算法和密钥大小增加了严格的限制,可能会对生态系统造成影响。
node -v //cmd进入命令行输入命令,查看自己的版本号
解决方法:
永久解决问题:
第一:命令行输入
$env:NODE_OPTIONS="--openssl-legacy-provider"
第二:主动降低 Node.js 的版本。
node.js 修改为不高于 16 的版本
这个方法不推荐,因为在实际开发中,要求每一个开发人员都因为一个项目而降低版本不合理,有的开发人员有多个项目,会连锁反应。在这里不做细节介绍了。
用环境变量临时解决:(命令行输入一定要用管理员模式才可以哟)
第一:windows 环境 不要在开发工具的终端输入!
在命令行输入: 输入完成之后重新启动项目即可
set NODE_OPTIONS=--openssl-legacy-provider
第二: Linux 或者 WSL 环境 不要在开发工具的终端输入!
export NODE_OPTIONS=--openssl-legacy-provider
原文地址:https://blog.csdn.net/youyudehan/article/details/128476816
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.7code.cn/show_50557.html
如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。