引言
最近在升级nodejs版本到v18.7.0后启动项目报digital envelope routines::unsupported,经过多方查找最终找到解决方法,特写下此篇
原因
node.js的版本问题
因为 node.js V17版本中最近发布的OpenSSL3.0, 而OpenSSL3.0对允许算法和密钥大小增加了严格的限制,可能会对生态系统造成一些影响。故此以前的项目在升级 nodejs 版本后会报错
解决方案
"scripts": {
"serve": "SET NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service serve",
"build": "SET NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service build",
},
只要在原来package.json里命令前添加 SET NODE_OPTIONS=--openssl-legacy-provider
就好了