问题:
vue项目启动时运行:npm run serve 报错如下:
error:0308010C:digital envelope routines::unsupported
at new Hash (node:internal/crypto/hash:69:19)
at Object.createHash (node:crypto:138:10)
Error: error:0308010C:digital envelope routines::unsupported
at new Hash (node:internal/crypto/hash:69:19)
at Object.createHash (node:crypto:138:10)
解决方案:
打开package.json文件:
找到scripts 添加:export NODE_OPTIONS=--openssl-legacy-provider &&
"scripts": {
"dev": "export NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service serve",
"build:prod": "export NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service build"
}
说明:win系统是:set NODE_OPTIONS=--openssl-legacy-provider
linux(mac)系统是:export NODE_OPTIONS=--openssl-legacy-provider
产生原因:
Node 17.x 版本之前,它使用 OpenSSL 2 版本。NodeJS 使用 OpenSSL 作为哈希功能代码。OpenSSL 3 禁用 MD4,因为最新的 Nodejs 版本中的 NodeJS 已损坏。