个人技术分享

今天在打包vue2项目时,遇到一个报错:
在这里插入图片描述
在这里插入图片描述

最关键的代码如下:

Error: error:0308010C:digital envelope routines::unsupported
    at new Hash (node:internal/crypto/hash:80:19)

百度后发现是node版本的问题。

在昨天我确实操作了一下node,由于另一个项目是vue3的,所以使用nvm 切换了一下node,我这边的node只有两个版本:18.16.114.21.3
在这里插入图片描述
报错信息的最后显示的node版本是20.12.2

由于我这边的打包是通过jenkins自动打包的,所以服务器上的node版本是20.12.2

百度后的解决办法:
在这里插入图片描述

解决办法1:node版本降级

这种方法只适用于单一的框架,比如统一使用vue2则,对node版本的要求在16以下即可,但是我这边项目vue2+vue3共存,则不能单纯的通过node版本降级来实现。

解决办法2:在package.json中添加以下的代码——SET NODE_OPTIONS=–openssl-legacy-provider

在这里插入图片描述
我在package.json中更改了serve+build+build:test三个命令的代码:
在这里插入图片描述
最终问题得以解决!!!

多多积累,多多收获!!!