✔ 오류발생🚨
오래전에 들었던 강의 repo를 보던 중, npm start
를 했더니 error:0308010C:digital envelope routines::unsupported
라고 오류가 뜨면서 npm start
, npm build
둘다 되지 않았다. 뭐가 지원이 안된다는거 같은데... 처음보는 친구라 구글링을 해봤다.
✔ 원인
- Node버전이 최신이라서 생기는 오류라고 한다.(필자는 현재 20버전)
- 정확하게는 Node.js v17에서 SSL provider 보안 문제를 해결하였고, 그 변화로 인해 v17 이상에서 충돌이 일어나는 것이라고 한다.(stackoverflow 답변 부분에서 발췌)
✔ 해결방법
1. Node를 안정적인 버전(16.13.0) 다운그레이드
2. package.json 수정 - legacy OpenSSL provider 활성화
"start" : "react-scripts --openssl-legacy-provider start"
- 수정하고 실행하면 바로 해결!
- 하지만, 아직 입문자라 모르겠지만 stackoverflow에서는 이 방법에 대해서 잠재적 위험이 있다고 말하는 분들도 있으며 더욱 근복적인 해결방법을 원하기도 했다. 그래서 근본적인 방법은?
3. react-scripts를 5.0.0(또는 그 이상)으로 업그레이드
npm i react-scripts@latest
- 버전 관리나 보안을 거꾸로 진행하지 않고 오류를 해결할 수 있다.
- 버전을 역주행하는 것보다 보안에 좋다고 한다.
참고
📌 stackoverflow 질의응답 👉 자세한 내용👍🏻
📌 Vintz님 블로그 - 'digital envelope routines' 에러 시 해결 방법