这边认为简单的办法是第一种,第二种方法还没有尝试过(由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.json
的 scripts
部分中修改 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 版本兼容是最佳的解决方案。