返回 导航

其他

hangge.com

Vue.js - 解决Node版本升级后报Error: error:0308010C:digital envelope routines::unsupported错误

作者:hangge | 2025-01-14 08:33

1,问题描述

最近将电脑上的 Node.js 版本升级到了 18,使用 npm run dev 运行一些老的 vue 项目时报如下错误:
Error: error:0308010C:digital envelope routines::unsupported
    at new Hash (node:internal/crypto/hash:69:19)
    at Object.createHash (node:crypto:133:10)
    at module.exports (D:\Git\zxjk-web\node_modules\webpack\lib\util\createHash.js:90:53)
    at NormalModule._initBuildHash (D:\Git\zxjk-web\node_modules\webpack\lib\NormalModule.js:401:16)
    at handleParseError (D:\Git\zxjk-web\node_modules\webpack\lib\NormalModule.js:449:10)
    at D:\Git\zxjk-web\node_modules\webpack\lib\NormalModule.js:481:5
    at D:\Git\zxjk-web\node_modules\webpack\lib\NormalModule.js:342:12
    at D:\Git\zxjk-web\node_modules\loader-runner\lib\LoaderRunner.js:373:3
    at iterateNormalLoaders (D:\Git\zxjk-web\node_modules\loader-runner\lib\LoaderRunner.js:214:10)
    at Array.<anonymous> (D:\Git\zxjk-web\node_modules\loader-runner\lib\LoaderRunner.js:205:4)
    at Storage.finished (D:\Git\zxjk-web\node_modules\enhanced-resolve\lib\CachedInputFileSystem.js:43:16)
    at D:\Git\zxjk-web\node_modules\enhanced-resolve\lib\CachedInputFileSystem.js:79:9
    at D:\Git\zxjk-web\node_modules\graceful-fs\graceful-fs.js:90:16
    at FSReqCallback.readFileAfterClose [as oncomplete] (node:internal/fs/read_file_context:68:3) {
  opensslErrorStack: [ 'error:03000086:digital envelope routines::initialization error' ],
  library: 'digital envelope routines',
  reason: 'unsupported',
  code: 'ERR_OSSL_EVP_UNSUPPORTED'
}

2,问题原因

    主要是因为 nodejs V17 版本发布了 OpenSSL3.0,对算法和秘钥大小增加了更为严格的限制,nodeJs v17 之前版本没影响,但 V17 和之后版本会出现这个错误。

3,解决办法

(1)修改项目的 package.json 文件,在相关命令前添加如下参数:
set NODE_OPTIONS=--openssl-legacy-provider && 

(2)保存后项目就可以正常编译运行了。
评论

全部评论(0)

回到顶部