从Git仓库中下载了一个老项目,使用npm install
安装后没有问题,当我使用npm run dev
的时候遇到了 OpenSSL 相关错误,例如 opensslErrorStack: ['error:03000086:digital envelope routines::initialization error']
网上找了一下相关信息,然后顺利解决了,记录分享给大家
问题原因:
这种错误通常与 Node.js 版本和 OpenSSL 版本之间的兼容性问题有关。某些 Node.js 版本可能与特定版本的 OpenSSL 不兼容,导致加密或安全相关的功能出现问题。
解决方案:
首先,确认你 Node.js 和 OpenSSL 版本。可以通过以下命令查看版本:
代码语言:javascript复制node -v
openssl version
如果发现 Node.js 版本与 OpenSSL 版本存在兼容性问题,可以尝试以下解决方案:
在你的项目的 package.json
文件中的 scripts
部分,添加一个新的脚本,比如 dev
:
"scripts": {
"dev": "set NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service serve",
}
或者在 Linux 或 macOS 系统中,使用以下命令:
代码语言:javascript复制"scripts": {
"dev": "export NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service serve",
}
这里的 dev
是你实际的启动脚本名称。
保存 package.json
文件。
在终端或命令提示符中,导航到项目目录。
运行以下命令,以确保所有依赖项都已安装:
代码语言:javascript复制npm install
运行以下命令来启动你的应用程序:
代码语言:javascript复制npm start
通过添加 NODE_OPTIONS=--openssl-legacy-provider 到启动脚本中,你为 Node.js 设置了一个环境变量,以使用旧版本的 OpenSSL 提供程序。这在某些情况下可以解决特定的 OpenSSL 错误。
不过这只是一个临时解决方案, 可能随着Node.js 和 OpenSSL 的更新,问题可能会得到修复。