`Error: error:0308010C:digital envelope routines::unsupported` 오류 해결하기
최신 노드
버전을 사용
하면서 과거
에 작업했던 프로젝트
를 실행
하거나 빌드할 경우 아래와 같은 오류
가 발생
할 수 있습니다.
Error: error:0308010C:digital envelope routines::unsupported
at new Hash (node:internal/crypto/hash:68:19)
at Object.createHash (node:crypto:138:10)
at module.exports (/Users/syki66/Desktop/test/node_modules/webpack/lib/util/createHash.js:135:53)
at NormalModule._initBuildHash (/Users/syki66/Desktop/test/node_modules/webpack/lib/NormalModule.js:417:16)
at handleParseError (/Users/syki66/Desktop/test/node_modules/webpack/lib/NormalModule.js:471:10)
at /Users/syki66/Desktop/test/node_modules/webpack/lib/NormalModule.js:503:5
at /Users/syki66/Desktop/test/node_modules/webpack/lib/NormalModule.js:358:12
at /Users/syki66/Desktop/test/node_modules/loader-runner/lib/LoaderRunner.js:373:3
at iterateNormalLoaders (/Users/syki66/Desktop/test/node_modules/loader-runner/lib/LoaderRunner.js:214:10)
at iterateNormalLoaders (/Users/syki66/Desktop/test/node_modules/loader-runner/lib/LoaderRunner.js:221:10)
/Users/syki66/Desktop/test/node_modules/react-scripts/scripts/build.js:19
throw err;
^
아래 방법 중 하나를 적용하면, 오류 해결이 가능합니다.
1. package.json 수정 (권장)
package.json
파일에 들어가면 아래와 같이 npm start
, npm run build
시 실행되는 스크립트가 존재합니다.
"start": "react-scripts start",
"build": "react-scripts build"
아래와 같이 --openssl-legacy-provider
옵션을 넣고 다시 실행
, 빌드
하면 정상적으로 진행됩니다.
"start": "react-scripts --openssl-legacy-provider start",
"build": "react-scripts --openssl-legacy-provider build"
2. Node 버전 낮추기
두번째 방법은 노드 버전
을 낮추면
되는데, 간편하게 nvm
을 사용하면 됩니다. (참고: 맥에서 nvm 설치 및 사용 방법)
nvm use 16
3. 명령어 실행
터미널
에서 환경변수를 설정한 뒤, 실행
, 빌드
하면 정상적으로 진행됩니다.
Unix 계열 (macOS, 리눅스, Git bash 등)
export NODE_OPTIONS=--openssl-legacy-provider
Windows command prompt
set NODE_OPTIONS=--openssl-legacy-provider
Windows PowerShell
$env:NODE_OPTIONS = "--openssl-legacy-provider"