JavaScript

node modules와 gitignore, package.json의 관계

차니() 2020. 4. 16. 02:32

node module을 사용하는 자바스크립트, 노드js, 리액트 관련 프로젝트를 할때

 

Create React App으로 프로젝트를 생성을 하면

 

기본적으로 gitignore파일에 node modules 경로가 잡히게 된다.

 

변경사항을 추적하지 말라는 뜻이다.

 

스테이징 자체를 하지 않기 때문에, 실제로 꼭 필요한 소스만 깃을 통해 관리할수 있게 된다.

 

 

npm install

 

yarn add

 

이런 명령어들로 필요한 모듈들을 설치해서 쓰면

 

로컬 환경에서는 이것들과 관련된 파일들이 다운로드되어 파일이 생성되지만

 

이 경로를 스테이징하지 않기 때문에

 

다른곳에서 그 상태의 소스를 Pull이나 Clone을 받은후에 실행을 해보려하면

 

실행이 되지 않는다.

 

 

이럴때는 clone한 경로 또는 Push받은 그 경로에서 터미널을 열고

 

npm install 또는 yarn install등을 쳐서

 

package.json 또는 Yarn.lock에 있는 의존성정보에 따라

 

필요한 파일들을 내 로컬환경에 설치하면 된다.

 

 

마치 Maven프로젝트에서 porm.xml에서 dependency를 관리하는것과 비슷한 이치이다.

 

 

npm install nodemon 이런식으로하면 package.json에 nodemon의 버전과 설치정보가 들어가게 된다.

 

거꾸로 package.json에 이런 문구들을 수동으로 입력한후에

 

npm install을 치면 그 의존성 정보에따라 파일들을 버전에 맞추어 설치를 해준다.

 

 

참고로 최근에는 npm보단 yarn을 사용하는것이 권장되고 있다고 한다.