node升级,vue2项目不能运行问题

问题:升级node版本v18以上,启动项目报错:

error:0308010C:digital envelope routines::unsupported 

原因:在升级 Node.js 版本后,你遇到的这个问题可能是因为新版本的 Node.js 默认启用了更严格的加密库(OpenSSL 1.1.x),而旧版本的 Vue CLI 使用的一些依赖可能不兼容新的加密库。加上 export NODE_OPTIONS=--openssl-legacy-provider 是为了在运行 vue-cli-service serve 命令时,将 Node.js 的加密库切换回旧版本(OpenSSL 1.0.x)以保持兼容性。

具体来说,export NODE_OPTIONS=--openssl-legacy-provider 这个环境变量设置告诉 Node.js 使用旧版的 OpenSSL 提供程序,以确保与旧的依赖关系兼容。这样做可以解决一些旧版本的依赖项在新版本 Node.js 中出现的加密相关问题。

请注意,这仅仅是一个临时解决方案,为了确保项目的长期稳定性,建议尽快考虑升级或替换与 Vue.js 相关的依赖项,以适应新版本的 Node.js。

解决方法:

方法一:

1、在终端,先执行以下代码

export NODE_OPTIONS=--openssl-legacy-provider

2、 再启动项目

方法二:直接在package.json文件里添加修改
"scripts": {
    "dev": "export NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service serve ",
    "build:prod": "export NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service build ",
方法三:每次执行前,先执行以下代码
$env:NODE_OPTIONS="--openssl-legacy-provider"
方法四:降低node版本,安装小于v18版本以下

注意不同系统的执行方法:

Mac:
export NODE_OPTIONS=--openssl-legacy-provider
Windows: 
set NODE_OPTIONS=--openssl-legacy-provider

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值