이전 버전의 프로젝트를 실행할 때 오류: 오류:0308010C:디지털 봉투 루틴::지원되지 않는 문제 해결

환경

Node.js : v18.12.1

개발 도구: VsCode

프로젝트 실행시 오류는 다음과 같습니다.

//报错主要提示,第一行。
Error: error:0308010C:digital envelope routines::unsupported  
    at new Hash (node:internal/crypto/hash:71:19)
    at Object.createHash (node:crypto:133:10)
    at BulkUpdateDecorator.hashFactory (D:\editingPro\isc-web-dev-jiangsu\node_modules\webpack\lib\util\createHash.js:145:18)
    at BulkUpdateDecorator.update (D:\editingPro\isc-web-dev-jiangsu\node_modules\webpack\lib\util\createHash.js:46:50)    at OriginalSource.updateHash (D:\editingPro\isc-web-dev-jiangsu\node_modules\webpack\node_modules\webpack-sources\lib\OriginalSource.js:131:8)
    at NormalModule._initBuildHash (D:\editingPro\isc-web-dev-jiangsu\node_modules\webpack\lib\NormalModule.js:888:17) 
    at handleParseResult (D:\editingPro\isc-web-dev-jiangsu\node_modules\webpack\lib\NormalModule.js:954:10)
    at D:\editingPro\isc-web-dev-jiangsu\node_modules\webpack\lib\NormalModule.js:1048:4
    at processResult (D:\editingPro\isc-web-dev-jiangsu\node_modules\webpack\lib\NormalModule.js:763:11)
    at D:editingPro\isc-web-dev-jiangsu\node_modules\webpack\lib\NormalModule.js:827:5 {
  opensslErrorStack: [ 'error:03000086:digital envelope routines::initialization error' ],
  library: 'digital envelope routines',
  reason: 'unsupported',

Node.js v18.12.1   //当前版本号。

이유

Node.js 버전이 너무 높습니다. Node.js V17 버전에서 출시된 OpenSSl3.0에는 허용되는 알고리즘과 키 크기에 대한 엄격한 제한이 추가되어 생태계에 영향을 미칠 수 있습니다.

node -v    //cmd进入命令行输入命令,查看自己的版本号

해결책:

문제에 대한 영구적인 해결책 :

첫 번째: 명령줄 입력

$env:NODE_OPTIONS="--openssl-legacy-provider"

둘째: Node.js 버전을 낮추는 데 앞장서세요.

node.js를 16 이하의 버전으로 수정하세요.

이 방법은 실제 개발 시 하나의 프로젝트 때문에 모든 개발자에게 버전 다운그레이드를 요구하는 것은 무리가 있고 일부 개발자는 여러 프로젝트를 진행하게 되어 연쇄반응이 일어날 수 있으므로 권장하지 않습니다. 여기서는 자세한 내용을 소개하지 않습니다.

일시적으로 문제를 해결하려면 환경변수를 사용하세요 . (명령줄 입력은 관리자 모드에서 이루어져야 합니다.)

첫째 : Windows 환경에서 개발도구의 터미널에 진입하지 마세요!

명령줄에 입력: 입력 완료 후 프로젝트를 다시 시작합니다.

set NODE_OPTIONS=--openssl-legacy-provider 

둘째: Linux나 WSL 환경에서 개발 도구의 터미널에 입력하지 마세요!

export NODE_OPTIONS=--openssl-legacy-provider

추천

출처blog.csdn.net/youyudehan/article/details/128476816