npm

2021년 11월 26일 수정

npm

npm은 Javascript Package Manager라는 소개를 달고 있지만 실상은 Node.js Package Manager의 약자가 아닐까 추정되는 이름이다. 그 이름대로 의존 패키지를 설치하고 관리하기 위한 CLI 도구다.

기본 사용법

로컬 패키지 설치

npm은 기본적으로 로컬 디렉터리에 패키지를 설치할 때 사용한다.

npm install <package-name>

이 경우 위 명령을 실행한 디렉터리에 node_modules/ 라는 디렉터리가 생기고 여기에 패키지가 설치된다.

함께 생성되는 package-lock.json 파일은 당시 커맨드로 설치한 패키지의 버전 정보가 기록된다.

참고로 install 커맨드는 i 로 줄여서 쓸 수도 있다.

npm i <package-name>

개발 전용 패키지

해당 패키지가 프로덕션으로는 필요가 없다면 개발 용도로만 설치할 수도 있다.

npm install --save-dev <package-name>
# or
npm install -D <package-name>

전역 유틸리티 패키지 설치

만약 프로젝트 의존성이 아닌 시스템 도구라서 전역(global)으로 설치하고 싶다면 -g 옵션을 추가할 수 있다.

npm i -g <package-name>

프로젝트 패키지 관리

의존성 목록 만들기

프로젝트 단위의 의존성을 관리하고 싶다면 아래 명령으로 패키지 목록을 초기화할 수 있다.

npm init

몇 가지 물음에 답하면 package.json 파일이 생성되고 여기에서 의존성 정보를 관리할 수 있다.

의존성 설치 및 목록에 추가

패키지 설치와 의존성 목록 추가를 자동으로 하고 싶다면 --save 옵션을 추가해서 설치해보자.

npm install --save <package-name>

이렇게 하면 설치가 되면서 동시에 package.json 에 해당 의존성도 함께 추가된다.

의존 패키지 전부 설치하기

목록에 존재하는 패키지를 한번에 설치하려면 그냥 설치 커맨드를 실행시키면 된다.

npm install

이렇게 하면 package.json 에 적혀 있는 의존 패키지가 몽땅 설치된다.

스크립트 관리

npm을 통해 스크립트를 실행하는 것도 가능하다. 위에서 생성한 package.json 파일에 scripts 라는 항목에 원하는 커맨드를 추가할 수 있다.

scripts: {
    "mytest": "echo TEST"
}

이렇게 작성해두면 아래와 같이 스크립트를 실행시킬 수 있다.

$ npm run mytest

> project-name@1.0.0 mytest /foo/bar/project-name
> echo TEST

TEST

따라서 자주 사용하는 커맨드를 작성해 놓기에 유용하다.