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 |