一个比较老的Vue项目,在启动时候,报错:

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

问题原因是nodejs升级到17后,openssl3.0 对允许算法密钥大小增加了严格的限制,临时的解决办法是配置node_options.


# Windows 环境

$env:NODE_OPTIONS="--openssl-legacy-provider"
#or
set NODE_OPTIONS=--openssl-legacy-provider
 

# Linux or Mac
export NODE_OPTIONS=--openssl-legacy-provider

上述的方法是一次性的,也可以在package.json中对script进行修改,如


...
"serve" : "SET NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service serve"
...