最近node升级到v18的版本后,运行npm run serve发现控制台报错如下:
Error: error:0308010C:digital envelope routines::unsupported
出现这个错误是因为node v17版本之后发布的OpenSSL3.0,OpenSSL3.0对允许算法和密钥大小增加了严格的限制,可能会对生态系统造成一些影响。
解决方法:
Linux 或 Mac系统
export NODE_OPTIONS=--openssl-legacy-provider
windows系统,在cmd输入:
set NODE_OPTIONS=--openssl-legacy-provider
再执行npm run serve,项目启动成功:
⚠️按照上面的操作虽然可以解决问题,但是每次在不同的目录打开项目,启动项目时都要输一次上面的命令,这样子很麻烦,所以最后我把node的版本切换到16.20.0了,node v16版本没有这个问题。