最近node升级到v18的版本后,运行npm run serve发现控制台报错如下:
Error: error:0308010C:digital envelope routines::unsupported
![](https://i-blog.csdnimg.cn/blog_migrate/4696a19e0edffb5bc54c86ae46f4672b.png)
出现这个错误是因为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,项目启动成功:
![](https://i-blog.csdnimg.cn/blog_migrate/897cca0e4c2c456d5c9304615cba2583.png)
⚠️按照上面的操作虽然可以解决问题,但是每次在不同的目录打开项目,启动项目时都要输一次上面的命令,这样子很麻烦,所以最后我把node的版本切换到16.20.0了,node v16版本没有这个问题。
![](https://i-blog.csdnimg.cn/blog_migrate/794febb049f307867862520f5e1f67b8.jpeg)