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