node版本问题:Error: error:0308010C:digital envelope routines::unsupported
时间:2023-06-04 19:35:18  来源:博客园  
1
听新闻

前言

出现这个错误是因为 node.js V17及以后版本中最近发布的OpenSSL3.0,


(资料图片仅供参考)

而OpenSSL3.0对允许算法和密钥大小增加了严格的限制,可能会对生态系统造成一些影响.

在node.js V17以前一些可以正常运行的的应用程序,但是在 V17 及以后版本可能会抛出以下异常:

我重装系统前,用的是V16.10左右的版本,今天一口气吃胖子了,直接用装了18.2.0最新稳定版本。然而这是我第二次出现这个问题,上次node升级也是用的最新稳定版本,emmmm.........解决方案一
在package.json 中进行配置,举例: "scripts": { "start": "SET NODE_OPTIONS=--openssl-legacy-provider && react-scripts start", "build": "SET NODE_OPTIONS=--openssl-legacy-provider && react-scripts build" },
解决方案二降级node版本 node的包管理是nvm 我肯定得装,因为我还需要v14的版本,虽然没有这么着急 下载地址:https://github.com/coreybutler/nvm-windows/releases 

1. nvm list available 查看可装列表

2. nvm install 16.14.1 安装指定版本

3. nvm use v16.14.1 使用指定版本

我遇到的问题

1. 安装路径有空格,导致安装版本失败,强制用管理身份,安装成功

2. 但是nvm use v16.14.1 的时候乱码

3. 解决方案就是删除重新安装nvm 重头来过,应该是可以改setting.txt;但不如我的重头来过的好

终于成这样

变成了这样

解决方案三 降低node版本(2)

1. npm i -g -n

2. n 16.14.1 //安装指定版本

3. n rm 18.16.2 //remove 以前的版本

关键词: