vuepress报错error0308010c

Error: error:0308010C:digital envelope routines::unsupported
环境
Node.js: v18.12.1
npm: 8.19.2
查完资料原因如下:
node.js V17版本中最近发布的OpenSSL3.0, 而OpenSSL3.0对允许算法和密钥大小增加了严格的限制,可能会对生态系统造成一些影响。故此以前的项目在升级 nodejs 版本后会报错。
有以下三种解决方法
Enable legacy OpenSSL provider.
On Unix-like (Linux, macOS, Git bash, etc.):
1 | export NODE_OPTIONS=--openssl-legacy-provider |
On Windows command prompt:
1 | set NODE_OPTIONS=--openssl-legacy-provider |
On PowerShell:
1 | env:NODE_OPTIONS = "--openssl-legacy-provider" |
nodejs降版本至16
安装命令
1 | nvm install 16.16.0 |
使用命令
1 | nvm use 16.16.0 |
成功之后就可以查看本地的node版本了
1 | node -v |
修改package.json
修改vuepress项目文件夹下的package.json,在构建命令之前加入SET NODE_OPTIONS=–openssl-legacy-provider
1 | "scripts": { |