-
ERR_OSSL_EVP_UNSUPPORTED, digital envelope routines::unsupported 오류 해결, Window에서 node JS 버전 관리하기Web-app/React 2023. 8. 5. 15:36728x90
오류 이름 : npm start 후 digital envelope routines::unsupported
해결 방법
1. 윈도우의 경우 nvm을 설치해서 node js 버전 관리를 해줘야 함. (Node js 18-> 16 downgrade, react-script : "3.2.0")
2. package.josn에 react-script를 5.0.1로 바꿔서 npm install 후 npm start 실행
3. package.json에 script항목에 --openssl-legacy-provider start를 쓰라고 함
오늘도 오류 천국
오늘은 어떤 오류가 나타났을까요
Udemy에서 선상님이 만들어 놓은 리액트 프로젝트를 열려고 npm start를 누르니까
Error: error:0308010C:digital envelope routines::unsupported blabla opensslErrorStack: [ 'error:03000086:digital envelope routines::initialization error' ], library: 'digital envelope routines', reason: 'unsupported', code: 'ERR_OSSL_EVP_UNSUPPORTED'
에이퉤퉤 맛없어 오류를 뱉었읍니다.
원인
원인은 Node JS 17이상부터 적용된 이후 사용중인 모듈 중 일부가 Open SSL 3.0에 맞지 않은 알고리즘이나 key size를 쓰고 있기 때문이라고 합니다.
출처는 요기
해결방법
첫번째는 node js 버전을 낮춰주는 것 입니다.
n이라는 패키지가 있는데 이아이는 리눅스에서만 설치가 되어서
nvm이라고 하는 패키지를 아래 깃에서 설치해주었습니다. (exe 파일을 설치)
설치하면 vscode 창에 nvm이라고 치면 어떻게 쓰는지 나옵니당
node -v : 현재 node js 버전
nvm list : 현재 설치되어 있는 node js 버전들
nvm list available : 설치할 수 있는 node js 버전들 (근데 여기 안나와 있는 12 버전도 설치 가넝했읍니다.)
nvm install (특정 버전) : 특정 버전 node js를 설치
nvm use (특정 버전) : 특정 버전 ndoe js를 사용
원래 18 이었던 node js를 16으로 낮춘 후 npm start 하니 실행 성공!!
두번째는 package.json의 react-script를 기존에 3.2.0 -> 5.0.1로 바꾸어 주었습니다.
이것도 바꾸어서 node js 18버전 그대로 쓰니 성공!!
세번째는 package.json에 script option (--openssl-legacy-provider)을 추가하는 것입니다
요로케 고쳐서 node js 18버전에서 npm start 하면 잘 실행되었습니다.
package.json은 참 중요하군뇨..
출처
728x90'Web-app > React' 카테고리의 다른 글
React 별점 기능 구현 컴포넌트 만들어보기 (1) 2023.12.17 PSSecurityException 스크립트 실행 정책 오류 해결 (0) 2023.08.05