今天把node.js升级到了最新版v18.12.1,启动以前的vue项目时报错:digital envelope routines::unsupported,在网上查询了解决方法,记录下
1、原因:
node.js 的版本问题
因为 node.js V17版本中最近发布的OpenSSL3.0, 而OpenSSL3.0对允许算法和密钥大小增加了严格的限制,可能会对生态系统造成一些影响。故此以前的项目在升级 nodejs 版本后会报错
2、解决方法
修改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" },
或者降低版本试试