WEB/🌳 Node.js

[Node.js] 9. 패키지 매니저 npm

무딘붓 2022. 8. 2. 14:28

 

패키지 매니저(패키지 관리자, package manager)

 

패키지 매니저는 패키지의 설치, 업그레이드, 구성, 제거 과정을 자동화하는 소프트웨어 도구들의 모임이다.

여기서 패키지란, 라이브러리나 실행 파일을 포함하는 개념으로, 자바스크립트에서는 수많은 모듈로 구성되어있다.

 

모듈에 대해서는 아래 글을 참고하자.

https://sirius7.tistory.com/43

 

[Node.js] 3. 모듈 만들기, 불러오기 (export, require)

모듈이란? Node.js으로 앱을 개발하기 위해서는 모듈 시스템을 사용한다. 이때, 모듈이란 ‘미리 만들어둔 함수들의 집합’이라고 할 수 있다. Node.js에서의 모듈은 2가지(코어 모듈, 파일 모듈)

sirius7.tistory.com

 

Node.js의 패키지 매니저로는 NPM, Yarn이 있고, Python에는 pip이 있다.

 


npm

 

npm은 node package manager의 약자로, 자바스크립트 패키지 매니저이다.

 

npm은 Node.js에서 사용할 수 있는 모듈들을 패키지화하여 모아둔 저장소 역할과 패키지 설치 및 관리를 위한 CLI(Command line interface)를 제공한다.

 

npm의 사용방법은 다음과 같다.

 

 

1. 프로젝트 초기화

npm init

위 명령어를 입력하면 package.json 파일이 생기는데, 그냥 엔터키만 계속 누르면 기본값으로 저장이 된다.

 

Node.js 프로젝트에서는 많은 패키지를 사용하고, 패키지 버전도 자주 업데이트되므로 프로젝트가 의존하고 있는 패키지를 일괄 관리할 필요가 있다. 그런 이유로, npm은 package.json 파일을 통해서 프로젝트 정보와 패키지의 의존성(dependency)을 관리한다.

//package.json
{
  "name": "emoji",		// 프로젝트 이름
  "version": "1.0.0",		// 프로젝트 버전
  "description": "",		// 프로젝트 설명
  "main": "index.js",		// 패키지의 메인 파일
  "dependencies": {
    "node-emoji": "^1.10.0"
  },
  "devDependencies": {},	// 해당 프로젝트가 의존하는 패키지들의 이름과 버전
  "scripts": {			// 패키지의 명령어 요약
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "keywords": [],
  "author": "",
  "license": "ISC"
}

package.json 파일에서 주의깊게 살펴볼 항목은 name, version, dependencies 이다.

 

name과 version은 프로젝트의 이름과 버전을 저장하고 있는 부분으로, 패키지의 고유성을 판단한다.

dependencies 항목에는 해당 프로젝트가 의존하는 패키지들의 이름과 버전을 저장하고 있다.

 

 

2. 패키지 설치

npm install <패키지명>		// 지역 설치
npm install -g <패키지명>	// 전역 설치

npm을 이용해 패키지를 설치하는 법은 굉장히 간단하다. 예를들어, "pm2"라는 패키지를 설치하고 싶으면 npm install pm2 만 입력해주면 자동으로 설치가 된다.

 

전역(global) 설치를 하기 위해선 중간에 "-g"를 추가해주면 된다. 전역 설치를 하면 모든 프로젝트에서 공통으로 사용 가능해진다.

"-g"를 추가하지 않으면, 지역설치가 된다. 지역 설치를 하면 해당 프로젝트 내에서만 사용 가능하다.

 

 

3. 기타 기능

npm update <package-name>	// 패키지 업데이트

npm uninstall <package-name>	// 패키지 제거
npm uninstall -g <package-name>	// 전역 패키지 제거

npm ls -g --depth=0		// 전역 설치 패키지 확인

패키지의 업데이트, 제거 등을 위해서는 위의 명령어를 입력하면 된다.