Node.js

NPM

ssohyunn 2023. 4. 3. 15:50

NPM(Node Package Manager)이란 자바스크립트 프로그래밍 언어를 위한 패키지 관리자이다. Node.js 프로젝트를 관리하는 필수적인 도구라 할 수 있다.

Node.js 프로젝트를 생성하는 법부터 알아보자!

 

프로젝트 생성하기

npm init

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

만약 질문들을 건너 뛰고 싶다면 -y 옵션을 사용하면 된다.

 

package.json

프로젝트 관련 정보들이 저장되는 파일이다.

package.json

key value
name 프로젝트 이름
version 프로젝트 버전
description 프로젝트 설명
scripts npm run [script name] 으로 실행할 수 있는 사용자 작성 스크립트
dependencies 의존성 패키지들
devDependencies 개발환경에서만 사용하는 의존성 패키지들

대표적인 package.json의 구성 요소는 위 표와 같다.

 

npm install

npm install 명령어를 통해 프로젝트 의존성을 관리할 수 있다.

  •  의존성 추가 :   필요한 패키지를 프로젝트에 추가할 수 있다.
npm install [pacakge-name]

추가된 패키지는 package.json의 dependencies 안에 추가되고, node_modules 디렉터리에 저장된다.

 

  • 개발용 의존성 추가
    npm은 개발용 의존성을 분리하여 관리할 수 있다. 이는 배포 전까지만 사용하는 의존성을 의미한다.
npm install [package-name] --save-dev

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

--save-dev 옵션과 -D 옵션은 같은 의미다.

 

  • 의존성 내려받기
npm install

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

만약 개발용 의존성을 제외하고 내려받으려면 --production 옵션을 사용한다.

 

package-lock.json

프로젝트에 의존성을 추가하면 package-lock.json이라는 파일이 생성되고, 버전을 지정하지 않으면 자동으로 '^최신버전'으로 추가되는데, 의존성 버전이 갑자기 변경되지 않도록 설치된 버전을 고정하는 역할을 한다.

 

의존성 삭제(npm remove)

npm remove [package-name]

package.json의 dependencies와 devDependencies에서 삭제하고 node_modules에서도 삭제한다.

 

 

 

 

npx?

npm 패키지를 설치하지 않고 사용할 수 있게 해주는 도구이다.

프로젝트에 추가하거나 전역 패키지로 추가하지 않고, npx를 이용하여 바로 실행할 수 있다.