若依出现Error: error:0308010C:digital envelope routines::unsupported的情况解决办法及原因

这边认为简单的办法是第一种,第二种方法还没有尝试过(由ai得出)。
 

1、设置 NODE_OPTIONS 环境变量

(1)在命令提示符中临时设置:

在每次运行 npm run build 或npm run dev 之前,先运行以下命令:

set NODE_OPTIONS=--openssl-legacy-provider

然后再运行构建命令:

npm run build

npm run dev

(2)package.json 中永久设置:

如果希望每次构建时都应用这个选项,可以在 package.jsonscripts 部分中修改 build 命令

"scripts": {
  "build": "set NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service build"
}

2、切换Node.js 版本

可以去下面的官网下载所需要的版本

nodejs官网(链接)

安装新版本后,运行以下命令可以检查安装是否成功:

node -v
npm -v

原因

1、OpenSSL 版本变更

2、依赖项与 Node.js 版本的兼容性

3、Node.js 和 npm 版本不匹配

4、旧版依赖

5、项目配置问题

这种情况的根本原因在于 Node.js 与其依赖项之间的兼容性问题。

Node.js 17 及以上版本对 OpenSSL 的更改导致了许多旧项目在升级 Node.js 后出现问题。

通过降级 Node.js 版本或使用兼容选项(如 --openssl-legacy-provider),可以避免这些问题。不过,从长远来看,确保所有项目依赖项都与最新的 Node.js 版本兼容是最佳的解决方案。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值