오류 해결

nodejs 실행 시 오류 해결 (error:0308010C:digital envelope routines::unsupported)

Nellie Kim 2024. 2. 7. 20:39
728x90

프론트 시작. 

 

1. 클론 받기

 

 1) 인텔리제이에서 프론트작업을 원래처럼 클론받기

 2) VSCode에서 File → Open Folder → 인텔리제이에서 클론받았던 폴더 선택 

 

2. yarn 설치 및 환경 변수 설정

 

터미널에서

npm install -g yarn → yarn install   $env:NODE_OPTIONS="--openssl-legacy-provider" 

 

3. yarn dev 로 프로젝트 실행

터미널에서  yarn dev 입력

 


 

2번 과정에서 환경변수가 설정이 안되고 

파일 이름, 디렉터리 이름 또는 볼륨 레이블 구문이 잘못되었습니다.

라는 에러만 내뱉었다 .

 

 

yarn dev 로 실행을 해봐도, 이런 에러가 나고 실행이 되지 않았다. 

  opensslErrorStack: [ 'error:03000086:digital envelope routines::initialization error' ],
  library: 'digital envelope routines',
  reason: 'unsupported',
  code: 'ERR_OSSL_EVP_UNSUPPORTED'
}

Node.js v18.17.0
error Command failed with exit code 1.

error:0308010C:digital envelope routines::unsupported

 

이 에러는 도대체 뭘까. ...... 

 

 

해결 방법

 

버전을 16으로 바꿔주거나, 웹팩5를 설치해주면 된다.

 

Webpack과 같은 명령줄 도구는 "MD4 알고리즘"을 사용하여 파일 해시를 생성하며, 

이러한 파일 해시는 JavaScript 파일의 변경 사항을 추적하는 데 사용된다고 한다. 

 

기본적으로 OpenSSL 버전 3은 MD4 알고리즘 지원을 활성화하지 않기때문에  Node.js를 버전 17 이상으로 업그레이드한 경우 Webpack을 사용하여 애플리케이션을 빌드할 때 이 오류가 표시된다고 한다.

 

그렇다고 한다....

 

 

먼저,  버전을 16으로 바꾸니까 바로 됐다 ..

Windows PowerShell 에서 버전 다운그레이드

 

 

두번째로 웹팩을 다운로드해준다. 

npm install webpack@latest

 

그리고 터미널에서 아래와 같이 환경변수 설정. 

 set NODE_OPTIONS=--openssl-legacy-provider

 

 

해결 방법 정리

 

1 node.js 버전을 16으로 다운그레이드  

 

또는 

 

2. 웹팩 5를 다운 &  set NODE_OPTIONS=--openssl-legacy-provider 로 환경변수를 지정 

 

 

나는 버전을 18로 설정하고 2번 방법으로 해결하였다. 

 

 

 

https://sebhastian.com/error-0308010c-digital-envelope-routines-unsupported/

 

How to fix error:0308010C:digital envelope routines::unsupported on NodeJS

This article explains how to fix error:0308010C in Node version 17 and above

sebhastian.com

 

https://velog.io/@angel_eugnen/TILerror0308010cdigital-envelope-routinesunsupported

 

velog

 

velog.io