백엔드/Node.js

[Node] npm start 시 "react-scripts: not found", Node 버전 업그레이드 시 "version `GLIBC_2.28' not found (required by node)" 해결법

공영재 2022. 12. 9. 20:04

이전에 작업하던 Github의 React 프로젝트를 Ubuntu 가상환경에서 clone하여 실행하고자 했는데, 

 npm start를 했지만 "react-scripts: not found" 에러와 함께 실행되지 않았습니다.

 

 

※ react-scripts에는 CRA(Create-React-App)에서 사용하는 스크립트가 들어있습니다.

CRA의 package.json을 보면 웹앱의 빌드를 react-scripts 라이브러리를 통해 진행하는 것을 알 수 있습니다.

package.json은 해당 프로젝트가 의존하는 패키지들의 리스트를

속성-값 형태의 json 파일로 저장한 것이며,

다른 환경에서의 빌드를 재생가능하게 만들어주는 파일입니다. 

 

해당 에러는 프로젝트의 package.json의 의존성이 맞지 않을 때 등장합니다.

이때 npm install 명령어를 통해 package들의 의존성을 맞출 수 있습니다.

 

하지만 저는 npm install을 해도 똑같은 에러를 마주했습니다.

많은 서치끝에 node version의 문제일 수 있다는 것을 확인하였고,

따라서 node를 업그레이드하고자 했습니다.

 

node -v //node 버전 확인
npm cache clean -f //속도 향상을 위한 캐시 삭제
npm install -g n //n : node 업그레이드를 위한 버전 관리 플러그인
n stable //안정화된 최근 Node version 설치

 

위 명령어를 통해 Node를 업그레이드 할 수 있습니다.

하지만! 이번에는 아무리 실행해봐도 node 버전이 업그레이드가 되지 않았습니다.

 

The error is occurring because node 18.0.0 requires the installation of lib GLIBC_2.28, if the server has nvm installed it will always download the latest versions. In my case I was using amazon linux that was in version 2.26, I made the change to ubuntu 20.4 and it solved.

 

그 이유는 현재 n stable로 설치되는 node version이 18.xx인데,

ubuntu 18.xx 버전을 포함한 몇몇 OS에서 node 18 버전을 지원하지 않기 때문이었습니다.

 

하필 Ubuntu 18.04..

 

저는 그래서 node 14 version으로 다운그레이드하여 설치하였습니다.

n 패키지에서 설치하고자 할 노드의 버전을 입력하면 설치할 수 있습니다.

 

 

node -v를 통해 설치가 제대로 이루어진 것을 확인할 수 있었습니다.

 

이후 npm start 시 정상적으로 실행되었습니다!

loading