본문 바로가기

DEVELOP

[React.js] github clone 로컬 충돌 해결 방법

728x90

초반에 리액트로 만든 레파지토리를 다른 로컬에서 clone 받았을 경우,

node_modules 폴더가 없고 터미널에 아무리 npm start를 날려 봐도 react-script가 없다는 말만 계속 나오는 경우나 실행이 되지 않는 경우.. 적지 않게 당황한다.

 

나중에 협업을 위해 그리고 내 자신과의 협업을 위해 기록용으로 남겨두고자한다.

(알아낸거라 틀린 부분도 있을 수있어서 참고 부탁드립니다!)

 

node_modules 은 해당 로컬에만 위치하고, 깃헙에 협업을 위해 푸시할경우, 그전에 레파지토리명/.gitignore 파일 (깃이 푸시할때 무시해도 좋은 것들을 나열하는 느낌? 이부분은 더 공부가 필요) 생성후, node_modules 를 작성후에 푸시를 해주자.

이유는, node_modules는 용량이 상당하고 클론시 속도도 현저하게 느리가. 또한 각 작업자의 환경이 조금씩 다르기 때문에 node_modules과 package-lock.json을 포함한 레파지토리를 무심결에 클론후 npm start를 날렸다간 어떤 변수를 만날줄 모르기때문.

 

그래서 보통, .gitignore 파일을 저장후 푸시를 날려주고, 그걸 클론 받은 사람은 node_modules 폴더와 package-lock.json 파일이 없는것을 확인후 해당 레파지토리 경로에서 "npm i" 또는 "npm install" 또는 "yarn install"를 해주면 package.json 파일에 적혀진 해당 프로젝트에 필요한 패키지들이 자동으로 설치되며 환경이 구성된다. 

 

 

하지만 내 경우엔 react 버전 충돌이란 에러 메세지가 나오고 프로젝트를 실행하지 못했었다. (참고로 내 로컬의 npm 버전은 @8.19.2)

찾은 결과 버전 충돌이 있어도 일단 설치한다는 뜻인 "npm install --legacy-peer-deps" 로 설치를 하고 npm start를 했더니 정상 작동 되었다!

 

참고) 실수로 node_modules 폴더를 깃헙에 업로드 했을 시 삭제 명령어

git rm -r --cached node_modules
git commit -m "delete node_modules"
git push origin master