nodejs升级后出现ERR_OSSL_EVP_UNSUPPORTED错误

nodejs升级后出现ERR_OSSL_EVP_UNSUPPORTED错误

  opensslErrorStack: [ 'error:03000086:digital envelope routines::initialization error' ],
  library: 'digital envelope routines',
  reason: 'unsupported',
  code: 'ERR_OSSL_EVP_UNSUPPORTED'

解决方案

排查原因,是新版本的nodejs使用的openssl和旧版本不同,导致项目启动出错。

1 在启动脚本之前添加环境变量

set NODE_OPTIONS=--openssl-legacy-provider

可以单独执行,或者拼接在npm脚本中

  "scripts": {
    "start": "set NODE_OPTIONS=--openssl-legacy-provider && node scripts/start.js",
    "buildwin": "set NODE_OPTIONS=--openssl-legacy-provider &&  node scripts/build.js",
    "build": "node scripts/build.js",
    "test": "node scripts/test.js"
  },

2 添加全局环境变量

在系统环境变量中添加NODE_OPTIONS=--openssl-legacy-provider ,但是发现在vscode中总是获取不到。
所以需要在vscode内部添加环境变量。
打开设置,搜索env


image.png

找到 terminal.integrated.env.windows选项,添加环境变量。


image.png
    "terminal.integrated.env.windows": {
       "NODE_OPTIONS":"--openssl-legacy-provider"
    }

重启控制台即可生效。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容