Coding Planet
[react] Node.js와 OpenSSL의 호환성 문제 본문
| 오류코드
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"
'front' 카테고리의 다른 글
[React] Core Concept (0) | 2024.06.25 |
---|---|
[react] 인강 수강 시작! (0) | 2024.06.25 |
[게시판] pre 태그 글에 자동 줄 바꾸기 - pre, Whitespace, 브라우저별로 (0) | 2024.03.13 |
Canvas 태그, JavaScript 내장함수, 예시 코드 (0) | 2024.01.30 |
Promise 이해하기 (1) | 2024.01.05 |