NODE_OPTIONS=--openssl-legacy-provider的作用
2025年5月19日大约 1 分钟
NODE_OPTIONS=--openssl-legacy-provider的作用
NODE_OPTIONS=--openssl-legacy-provider的作用是告诉Node.js使用OpenSSL的“旧版加密提供者”,从而恢复对旧加密算法的支持。这可以解决由于Node.js版本升级后,OpenSSL从2.x升级到3.x导致的兼容性问题。
具体作用和背景
从Node.js 17版本开始,Node.js默认使用OpenSSL 3.0,这个版本对加密算法和密钥大小有更严格的限制。许多前端框架和工具,如Vue.js、React.js等,在使用Webpack进行模块打包和热替换时,可能依赖于这些旧的加密方法。当这些工具或模块没有更新以支持OpenSSL 3.0的新限制时,就会出现兼容性问题,导致构建或运行错误。
使用方法
在项目根目录下,打开终端或命令行工具,输入以下命令:
Windows: set NODE_OPTIONS=--openssl-legacy-provider
macOS 和 Linux: export NODE_OPTIONS=--openssl-legacy-provider
执行该命令后,Node.js会使用旧版加密提供者,从而恢复对旧加密算法的支持,解决兼容性问题
示例:
在vue-element-admin项目的package.json下
"scripts": {
"dev": "set NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service serve",
},