NPM
Node Package Manager, 자바스크립트 프로그래밍 언어를 위한 패키지 관리자. Node.js의 기본 패키지 관리자.
설치
Node.js를 설치할 때 NPM이 함께 설치됨
Registry
- 패키지를 다운로드 받는 위치
- default: https://registry.npmjs.org/. default가 아닌 registry를 사용하고 싶은 경우 .npmrc를 수정
- 한 패키지는 한 개의 registry만 가짐. Scoped 패키지의 경우 scope마다 npmrc를 작성하여 여러 registry를 사용할 수 있긴 함
- private registry를 사용할 경우 token이 필요
관련 파일
- .npmrc: private registry에 접근할 때 필요한 token이나 Proxy 정보 등을 저장. users/ 아래에 global npmrc 파일이 있고 프로젝트 루트 폴더에 개별 npmrc 파일을 관리할 수 있음
- Git Repository 안에 .npmrc 파일이 있는 경우에는 Clone 했을 때 바로 npm 설정을 할 수 있다.
- package.json: 프로젝트에서 사용하는 패키지의 정보를 저장하는 파일
- name, version, description: 패키지의 이름과 버전, 설명
- main: 패키지의 진입점이 되는 모듈의 ID, default: index.js
- script: command alias
- keywords, author, license: 패키지 배포용
- dependencies: 배포에 필요한 패키지. 패키지를 다운로드 받으면 자동으로 패키지의 이름과 버전을 기록
- devDependencies: 개발에만 필요한 패키지. e.g. 테스트용 패키지
- 패키지의 버전을 범위로 지정함
- package-lock.json: 패키지의 의존성에 대한 정확한 정보를 가지고 있는 파일. node_modules를 제외하고 배포할 경우 필요하며 패키지가 추가/삭제되거나 변경될 때마다 새로 작성
커맨드
- npm init: 폴더 내부에서 npm을 사용할 수 있도록 package.json 파일을 만들어줌
- npm install(or npm i):
- -g 옵션: global 설치, --registry: 특정 레지스트리에서 패키지 설치
- 특정 패키지 설치
- 프로젝트의 package.json에 기록된 패키지 설치
- npm ci: package-lock.json에 기록한 파일을 설치
- npm install의 경우 package.json의 파일을 설치하고, 그 결과를 package-lock.json에 기록
- npm ci는 package-lock.json의 파일을 설치
- 공동 개발 환경에서는 npm ci 사용
- npm config ls: npm 설정 파일 확인. global과 local의 .npmrc를 모두 보여줌