이전에 작업하던 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 버전을 지원하지 않기 때문이었습니다.
저는 그래서 node 14 version으로 다운그레이드하여 설치하였습니다.
n 패키지에서 설치하고자 할 노드의 버전을 입력하면 설치할 수 있습니다.
node -v를 통해 설치가 제대로 이루어진 것을 확인할 수 있었습니다.
이후 npm start 시 정상적으로 실행되었습니다!