今天在打包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.1
和14.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
三个命令的代码:
最终问题得以解决!!!
多多积累,多多收获!!!