Node.js

node_modules, SemVer 버저닝

쿠와와 2020. 12. 17. 14:01

npm install node_modules 폴더 생성

  • 내부에 설치한 패키지들이 들어 있음
  • express 외에도 express와 의존 관계가 있는 패키지들이 모두 설치됨

package-lock.json도 생성되어 패키지 간 의존 관계를 명확하게 표시함

npm install --save-dev 패키지명 또는 npm i -D 패키지명

  • devDependencies에 추가됨

 

 

 

 

 

 

 

 

 

npm install --global 패키지명 또는 npm i -g 패키지명

  • 모든 프로젝트와 콘솔에서 패키지를 사용할 수 있음
  • 예제는 rm –rf(리눅스의 삭제 명령)를 흉내내는 rimraf 패키지의 글로벌 설치
  • npx로 글로벌 설치 없이 글로벌 명령어 사용 가능

글로벌은 되도록이면 안쓰는게 좋음

 

SemVer 버저닝

노드 패키지의 버전은 SemVer(유의적 버저닝) 방식을 따름

  • Major(주 버전), Minor(부 버전), Patch(수 버전)
  • 노드에서는 배포를 할 때 항상 버전을 올려야 함
  • Major는 하위 버전과 호환되지 않은 수정 사항이 생겼을 때 올림
  • Minor는 하위 버전과 호환되는 수정 사항이 생겼을 때 올림
  • Patch는 기능에 버그를 해결했을 때 올림

1번째 자리 -> 대대적인 수정 기존코드 쓰던 사람이 바꿔야 함 (프로그램 고장 날 수 있음)

2번째 자리 -> 기존코드쓰던 사람이 안심하고 올려도됨

3번째 자리 -> 소소한 에러,버그 수정

 

버전 앞에 기호를 붙여 의미를 더함

  • ^1.1.1: 패키지 업데이트 minor 버전까지만 업데이트 됨(2.0.0버전은 안 됨)
  • ~1.1.1: 패키지 업데이트 시 patch버전까지만 업데이트 됨(1.2.0버전은 안 됨)
  • >=, <=, >, <는 이상, 이하, 초과, 미만.
  • @latest는 최신 버전을 설치하라는 의미
  • 실험적인 버전이 존재한다면 @next로 실험적인 버전 설치 가능(불안정함)
  • 각 버전마다 부가적으로 알파/베타/RC 버전이 존재할 수도 있음(1.1.1-alpha.0, 2.0.0-beta.1, 2.0.0-rc.0)

 

'Node.js' 카테고리의 다른 글

익스프레스 (express)  (0) 2020.12.18
npm 명령어들과 배포방법  (0) 2020.12.17
npm, package.json 패키지 관리  (0) 2020.12.16
https, http2 와 cluster  (0) 2020.12.15
쿠키, 세션 이해하기  (0) 2020.12.14