Node.js 版本过高导致 Vue CLI 项目报错的解决方案

作者:后端茶话时间:2026-10-30 22:11:49浏览:635

当 Node.js 版本升级至 17 及以上时,旧版 Vue CLI 项目常因 OpenSSL 算法限制启动失败,报错 ERR_OSSL_EVP_UNSUPPORTED。本文介绍两种修复方法:一是通过命令行设置 NODE_OPTIONS 环境变量启用旧版提供程序;二是直接修改 package.json 脚本,在启动命令前追加该配置,从而兼容高版本 Node.js。

报错信息:

Error: error:0308010C:digital envelope routines::unsupported at new Hash (node:internal/crypto/hash:71:19) at Object.createHash (node:crypto:133:10) at module.exports (D:\project\cylink-ui\node_modules\webpack\lib\util\createHash.js:135:53) at NormalModule._initBuildHash (D:\project\cylink-ui\node_modules\webpack\lib\NormalModule.js:417:16) at handleParseError (D:\project\cylink-ui\node_modules\webpack\lib\NormalModule.js:471:10) at D:\project\cylink-ui\node_modules\webpack\lib\NormalModule.js:503:5 at D:\project\cylink-ui\node_modules\webpack\lib\NormalModule.js:358:12 at D:\project\cylink-ui\node_modules\loader-runner\lib\LoaderRunner.js:373:3 at iterateNormalLoaders (D:\project\cylink-ui\node_modules\loader-runner\lib\LoaderRunner.js:214:10) at iterateNormalLoaders (D:\project\cylink-ui\node_modules\loader-runner\lib\LoaderRunner.js:221:10) at D:\project\cylink-ui\node_modules\loader-runner\lib\LoaderRunner.js:236:3 at runSyncOrAsync (D:\project\cylink-ui\node_modules\loader-runner\lib\LoaderRunner.js:130:11) at iterateNormalLoaders (D:\project\cylink-ui\node_modules\loader-runner\lib\LoaderRunner.js:232:2) at Array.<anonymous> (D:\project\cylink-ui\node_modules\loader-runner\lib\LoaderRunner.js:205:4) at Storage.finished (D:\project\cylink-ui\node_modules\enhanced-resolve\lib\CachedInputFileSystem.js:55:16) at D:\project\cylink-ui\node_modules\enhanced-resolve\lib\CachedInputFileSystem.js:91:9 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 module.exports (D:\project\cylink-ui\node_modules\webpack\lib\util\createHash.js:135:53) at D:\project\cylink-ui\node_modules\graceful-fs\graceful-fs.js:123: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' } Node.js v18.13.0

由于 nodejs 版本过高,导致 vue-cli 项目运行报错。

报错信息:

解决方案1:每次启动项目前,输入配置命令:

set NODE_OPTIONS=--openssl-legacy-provider 

报错信息:

解决方案2:修改 package.json 配置文件:

修改前:

报错信息:

修改后:

报错信息:

修改内容:

"dev": "set NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service serve --open",
"build:prod": "set NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service build --report",
"build:stage": "set NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service build --mode staging",
"preview": "set NODE_OPTIONS=--openssl-legacy-provider && node build/index.js --preview",

总结

到此这篇关于 nodejs 版本过高导致 vue-cli 项目无法正常运行的几种解决方案的文章就介绍到这了,更多相关 nodejs 版本过高 vue-cli 无法运行内容请搜索本站以前的文章或继续浏览下面的相关文章希望大家以后多多支持本站!

作者最新文章