Coding Planet

[react] Node.js와 OpenSSL의 호환성 문제 본문

front

[react] Node.js와 OpenSSL의 호환성 문제

jhj.sharon 2024. 6. 25. 13:46
반응형

 

| 오류코드                

Error: error:0308010C:digital envelope routines::unsupported
    at new Hash (node:internal/crypto/hash:80:19)
    at Object.createHash (node:crypto:139:10)
    at module.exports (C:\workSpace\react-boilerplate\node_modules\webpack\lib\util\createHash.js:90:53)
    at NormalModule._initBuildHash (C:\workSpace\react-boilerplate\node_modules\webpack\lib\NormalModule.js:401:16)
    at handleParseError (C:\workSpace\react-boilerplate\node_modules\webpack\lib\NormalModule.js:449:10)
    at C:\workSpace\react-boilerplate\node_modules\webpack\lib\NormalModule.js:481:5
    at C:\workSpace\react-boilerplate\node_modules\webpack\lib\NormalModule.js:342:12
    at C:\workSpace\react-boilerplate\node_modules\loader-runner\lib\LoaderRunner.js:373:3
    at iterateNormalLoaders (C:\workSpace\react-boilerplate\node_modules\loader-runner\lib\LoaderRunner.js:214:10)
    at Array.<anonymous> (C:\workSpace\react-boilerplate\node_modules\loader-runner\lib\LoaderRunner.js:205:4) {
  opensslErrorStack: [
    'error:03000086:digital envelope routines::initialization error',
    'error:0308010C:digital envelope routines::unsupported'
  ],
  library: 'digital envelope routines',
  reason: 'unsupported',
  code: 'ERR_OSSL_EVP_UNSUPPORTED'
}

 

 

 

| 오류 원인

 

  • OpenSSL 호환성 문제: Node.js 17 이상 버전에서는 OpenSSL 3.0이 사용되며, 이로 인해 이전 버전의 Webpack이나 다른 패키지들이 제대로 동작하지 않을 수 있다. 일부 패키지나 프로젝트는 OpenSSL 1.1.1과 호환되도록 설계되있다.
  • 패키지 의존성 문제: 특정 패키지가 Node.js의 새로운 버전과 호환되지 않을 수 있다. 이는 connected-react-router와 react-redux 패키지의 의존성 문제에서 기인할 수 있다.

 

 

| 해결방법

  • PowerShell이나 CMD에 아래 환경변수를 설정하고 npm start
    • --openssl-legacy-provider  : Node.js가 OpenSSL의 레거시 제공자를 사용하도록 지시
  • 혹은 node.js 버전을 16이하로 낮추는 방법도 있다.
$env:NODE_OPTIONS="--openssl-legacy-provider"

 

 

해결 완!

 

반응형
Comments