본문 바로가기

Coding/TIL (Today I Learned)

npm, Package.json

npm

npm은 Node Package Manager

하나의 프로그램은 다양한 모듈이 합쳐져서 만들어지는데, 우리는 모든것을 스스로 만들지 않고 검증된 모듈을 가져다 사용하는 경우가 많다. 필요한 모듈을 다운로드할 수 있는 일종의 앱스토어. 

*npm과 같은 개념으로 페이스북이 내놓은 패키지 매니저 yarn도 존재함.

 

Package.json

이 프로그램을 실행시키기 위해 필요한 모듈들이 무엇인지, 프로그램을 실행시키는 방법, 프로그램을 테스트하는 방법 등이 명시되어 있는 일종의 제품 카탈로그 같은 것. 협업을 할 때 코드와 함께 포함하고 있는 모든 모듈을 다 전달하지 않아도 된다. package.json에서 필요하다고 하는 모듈을 npm을 이용해 다운받아 쓰면 됨.

*npm install이 완료되면 node_modules 디렉토리가 생긴 걸 확인할 수 있다.

 "dependencies": {
    "react": "^16.8.6",  //반드시 필요한 모듈들이 무엇인지가 적혀 있음
 }
 
 "devDependencies": { 
    "jest": "^2.3.0",  //개발하는 환경에서 필요한 모듈들이 무엇인지
  	"eslint" : "^2.0.0"
  }
  
  "scripts": {
    "start": "node app.js",  //npm 으로 실행시킬 수 있는 명령어를 정의함.
    "test": "node test.js",
  }

 

알게된 점

노드 패키지들의 버전이 항상 세 자리인것은 SemVer(Semantic Versioning) 넘버링을 따르기 때문.

앞에서 부터 각각 Major.Minor.Patch를 의미한다고. 

- Major: 하위 호환이 되지 않는 변경 사항

- Minor: 하위 호환이 되는 변경 사항

- Patch: 간단한 버그 수정

 

프로그래밍은의 세계는 정말 세밀하다.

패키지를 배포하지 않을 것이라면 npm에 가입할 필요는 없다고 한다.. 뭐하러 미리 가입한 나...  ;ㅅ;