BE/Node.js

NPM과 명령어들

aodtns 2022. 4. 27. 11:04

NPM (Node Package Manager)

NPM이란 Node.js 프로젝트를 관리하는 필수적인 도구라고 생각하면 된다.

온라인 저장소

수많은 오픈소스 라이브러리와 도구들이 업로드되는 저장소이다.

필요한 라이브러리나 도구를 손쉽게 검색할 수 있고 Node.js의 인기와 함께 거대한 생태계를 보유하고 있다.

커맨드 라인 도구

프로젝트 관리를 위한 다양한 명령어를 제공한다.

1. 저장소에서 라이브러리, 도구 설치

2. 프로젝트 설정/관리

3. 프로젝트 의존성 관리

 

 

$npm init

프로젝트 디렉터리를 생성하고 해당 디렉터리 안에서 npm init 명령어를 사용하면 몇 번의 질문을 통해 package.json 파일을 만들어 준다.

이 파일은 앞에서 진행한 몇 번의 질문에 대한 답을 json 형식으로 저장해주고 직접 수정하거나 npm 명령어를 사용하여 프로젝트 정보를 수정할 수 있다.

 

 

$npm install

프로젝트 의존성을 관리할 수 있다. 이 명령어는 사용 방법에 따라 여러 용도로 사용할 수 있다.

1. 의존성 추가

2. 의존성 내려받기

3. 개발용 의존성 추가

4. 전역 패키지 추가

 

$npm install [package-name]

필요한 패키지를 프로젝트에 추가할 수 있다. 추가된 패키지는 package.json의 dependecies 안에 추가되며, node_modules 디렉터리에 저장된다. [package-name]@[version]을 사용하면 version을 정할 수 있다. 

 

$npm install [package-name] --save-dev

npm은 개발용 의존성을 따로 관리할 수 있다.

개발용 의존성이란 배포 전까지만 사용하는 의존성이다.(ex 유닛 테스트 라이브러리)

개발용 의존성은 package.json의 devDependencies에 추가된다.

 

$npm install

기본적으로 node_modules 디렉터리는 코드 관리나 배포 시에 업로드하지 않는다. 의존성이 많아지면 용량이 너무 커지고 운영체제별로 실행되는 코드가 다른 경우가 있기 때문이다.

npm install 명령어를 아무 옵션 없이 사용하면 package.json에 정의된 dependencies와 devDependencies의 의존성node_modules 디렉터리에 내려받는다.

 

$npm install --production

프로젝트를 배포할 때에는 개발용 의존성을 포함할 필요가 없기 때문에 --production을 사용하면 dependencies만 node_modules에 내려받는다.

 

$npm install [packeage-name] --global

패키지를 전역 패키지 디렉터리에 내려받는다. 커맨드라인 도구들을 주로 전역 패키지로 추가해서 사용한다.

(ex express-generator, pm2)

 

요약