vue项目启动报错(node版本与Webpack)

一、问题

因为项目需要将node版本从v14.17.0升级到v20.9.1了,然后启动项目报错

报错有些多,直接省略部分

building 2/2 modules 0 activeError: error:0308010C:digital envelope routines::unsupported

at new Hash (node:internal/crypto/hash:79:19)

at Object.createHash (node:crypto:139:10)

...

10% building 2/5 modules 3 active ...rains\IDEA\IdeaProjects\lz-safety\LZSafety-UI\node_modules@vue\cli-service\node_modules\webpack-dev-server\client\index.js?http://localhost:3200n

ode:internal/crypto/hash:79

this[kHandle] = new _Hash(algorithm, xofLen, algorithmId, getHashCache());

^

Error: error:0308010C:digital envelope routines::unsupported

at new Hash (node:internal/crypto/hash:79:19)

at Object.createHash (node:crypto:139:10)

...

opensslErrorStack: [

'error:03000086:digital envelope routines::initialization error',

'error:0308010C:digital envelope routines::unsupported'

],

library: 'digital envelope routines',

reason: 'unsupported',

code: 'ERR_OSSL_EVP_UNSUPPORTED'

}

Node.js v20.19.1

error Command failed with exit code 1.

info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
原因大致就是 Node.js 版本升级后,OpenSSL 安全策略加强导致的。

通俗点说就是 Webpack 4 默认使用 MD5 哈希算法,但 Node.js 17+ 版本默认禁用了弱哈希算法(如 MD5、SHA-1)

项目可能使用了较旧的 WebpackVue CLI 版本(如 Webpack 4),与新的 Node.js 版本不兼容

二、解决

1、修改启动脚本。

2、升级Webpack 和相关依赖。

3、将Node.js 版本降级。

单纯启动个项目,所以采用方案一

找到项目的package.json文件,修改serve选项(控制项目启动),build(打包项目的)

修改前 修改后

修改为以下代码

bash 复制代码
    "serve": "set NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service serve",
    "build": "set NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service build",

启动项目,直接运行成功了

相关推荐
请你吃div2 分钟前
JavaScript 实用函数大全(超实用)
前端·javascript·面试
一个水瓶座程序猿.4 分钟前
Vue3 中使用 Vueuse
前端·javascript·vue.js
夏梦春蝉4 分钟前
ES6从入门到精通:Symbol与迭代器
前端·javascript·es6
一个水瓶座程序猿.8 分钟前
ES6数组的`flat()`和`flatMap()`函数用法
前端·ecmascript·es6
袁煦丞24 分钟前
AI直接出答案!Perplexica开源搜索引擎:cpolar内网穿透实验室第534个成功挑战
前端·程序员·远程工作
Hilaku26 分钟前
用“人话”讲明白10个最常用的正则表达式
前端·javascript·正则表达式
木叶丸34 分钟前
跨平台方案该如何选择?
android·前端·ios
LL.。37 分钟前
同步回调和异步回调
开发语言·前端·javascript
网络点点滴42 分钟前
Vue如何处理数据、v-HTML的使用及总结
前端·vue.js·html
运维咖啡吧43 分钟前
周一才上线的网站,单单今天已经超过1000访问了
前端·程序员·ai编程