今天早上打開電腦,更新了日常工作的github倉庫,然後就是習慣性地執行了"npm install",發現報了下麵這個錯誤: Error: error:0308010C:digital envelope routines::unsupported 順便看了一下錯誤堆棧,發現是一個Node的內核文件拋 ...
今天早上打開電腦,更新了日常工作的github倉庫,然後就是習慣性地執行了"npm install",發現報了下麵這個錯誤:
Error: error:0308010C:digital envelope routines::unsupported
順便看了一下錯誤堆棧,發現是一個Node的內核文件拋出來的錯誤,我的第一反應這個錯誤應該是和Node的版本有關(前幾天剛剛升級過Node),所以理所當然地降低Node的版本應該可以解決這個問題。或者使用nvm(Windows平臺上也可以使用nvm-windows)安裝多個不同的Node版本。
除了切換Node的版本來解決這個問題外,其實還可以嘗試啟用legacy OpenSSL provider來解決這個問題,通過下麵的命令行操作起來更容易:
Unix (Linux, macOS, Git bash等)
export NODE_OPTIONS=--openssl-legacy-provider
Windows
set NODE_OPTIONS=--openssl-legacy-provider
PowerShell
$env:NODE_OPTIONS = "--openssl-legacy-provider"
另外一個方法是在項目的package.json文件里將
"start": "react-scripts start"
替換成:
"start": "react-scripts --openssl-legacy-provider start"
不過這個方法我沒有試過。