Vue运行项目报错node版本太高解决方法

Vue运行项目报错node版本太高解决方法

魅影
2023-01-23 / 0 评论 / 2,195 阅读 / 正在检测是否收录...

问题描述
1.下载使用了最新版的nodejs,部署老项目的时候启动报错了
2.报错信息 Error: error:0308010C:digital envelope routines::unsupported
原因分析
1、原项目是在nodejs 16版本上跑,目前升级为nodejs 18,可能是由于升级影响的
2、具体错误原因:ERR_OSSL_EVP_UNSUPPORTED 错误SSL 数字信封不支持

E:\code\Vue3\code\webpack>npm run dev

> webpack@1.0.0 dev
> webpack

node:internal/crypto/hash:71
  this[kHandle] = new _Hash(algorithm, xofLen);
                  ^

Error: error:0308010C:digital envelope routines::unsupported
    at new Hash (node:internal/crypto/hash:71:19)
    at Object.createHash (node:crypto:133:10)
    at BulkUpdateDecorator.hashFactory (E:\code\Vue3\code\webpack\node_modules\webpack\lib\util\createHash.js:138:18)  
    at BulkUpdateDecorator.update (E:\code\Vue3\code\webpack\node_modules\webpack\lib\util\createHash.js:44:50)        
    at RawSource.updateHash (E:\code\Vue3\code\webpack\node_modules\webpack-sources\lib\RawSource.js:64:8)
    at NormalModule._initBuildHash (E:\code\Vue3\code\webpack\node_modules\webpack\lib\NormalModule.js:736:17)
    at handleParseResult (E:\code\Vue3\code\webpack\node_modules\webpack\lib\NormalModule.js:800:10)
    at E:\code\Vue3\code\webpack\node_modules\webpack\lib\NormalModule.js:853:4
    at processResult (E:\code\Vue3\code\webpack\node_modules\webpack\lib\NormalModule.js:624:11)
    at E:\code\Vue3\code\webpack\node_modules\webpack\lib\NormalModule.js:675:5 {
  opensslErrorStack: [ 'error:03000086:digital envelope routines::initialization error' ],
  library: 'digital envelope routines',
  reason: 'unsupported',
  code: 'ERR_OSSL_EVP_UNSUPPORTED'
}

Node.js v18.12.1

解决方法有两种:
1、降版本到v16.X
2.先运行一次下面这条命令在跑项目
windows系统当中:

set NODE_OPTIONS=--openssl-legacy-provider

linux系统当中:

export NODE_OPTIONS=--openssl-legacy-provider
2

评论 (0)

取消