node版本問題:Error: error:0308010C:digital envelope routines::unsupported

前言

  出現這個錯誤是因爲 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 以前的版本

 
 
  
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章