상세 컨텐츠

본문 제목

[Node.js] 5장 패키지 매니저

21-22/21-22 Node.js

by Kimpeep 2021. 11. 8. 18:46

본문

728x90

1. npm 알아보기

npm : Node Package Manager


노드가 자바스크립트 프로그램을 컴퓨터에서도 실행할 수 있도록 해 주고, 그 외에 여러 가지 기능들을 제공하는 125만 개의 패키지가 존재한다. npm에 업로드된 노드 모듈을 패키지라고 부른다.

2. package.json으로 패키지 관리하기

  • package.json : 설치한 패키지의 버전을 관리하는 파일
  • 노드 프로젝트 폴더 내부에 package.json을 만들어야 함
  • D:\CODING\node.js\5장에 npm을 설치하고 package.json 파일을 만드는 과정

생성된 package.json

{
  "name": "npmtest",
  "version": "0.0.1",
  "description": "test npm  and package.json",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "sky",
  "license": "ISC",
  "dependencies": {
    "cookie-parser": "^1.4.5",
    "express": "^4.17.1",
    "express-session": "^1.17.2",
    "morgan": "^1.10.0"
  },
  "devDependencies": {
    "nodemon": "^2.0.14"
  }
}


npm install express 명령어를 통해 express 패키지를 설치하면 package.json에 아래와 같은 내용이 추가된다.

 "dependencies": { "express": "^4.17.1" }

추가로 node_modules라는 폴더 안에 설치된 패키지가 배치되고, package-lock.json이라는 파일도 생성된다. 패키지들 간의 의존관계가 정의되어 있다.

  • 한 번에 여러 개의 패키지를 설치할 때에는 아래와 같이 선언한다.

npm install [패키지 1] [패키지 2] [패키지 3]...

  • 개발용 패키지를 설치할 때는 --save-dev라는 명령어를 붙인다.

npm install --save-dev [패키지]

  • 전역 설치 옵션 : 패키지를 현재 폴더에 저장하는 것이 아니라 npm이 설치되어 있는 폴더에 설치, 보통 명령어로 사용하기 위해 설치

예) npm install --global rimraf : rimraf를 통해 폴더 삭제 가능

만약 node_modules 폴더를 삭제하더라도 package.json 파일만 있으면 npm install로 설치가 가능하다.

npx 명령어

npm install --save-dev rimraf //devDependencies 속성에 기록됨
npx rimraf node_modules
전역 설치하지 않았지만 전역 설치를 한 것처럼 사용 가능한 명령어. package.json에 기록도 됨.

npm에 등록되지 않은 명령어를 사용하고 싶을 때

npm install [저장소 주소]

3. 패키지 버전 이해하기

  • 노드, 노드 패키지의 버전은 세 자리 -> SemVer 방식
  • SemVer : Semantic Versioning(유의적 버전), 버전을 구성하는 세 자리가 모두 의미가 있음
3

major 버전
버전이 0일 땐 초기 개발
1부터 정식 버전을 의미
하위호환이 안 되는 업데이트에 올리는 버전
0





minor 버전
하위호환되는 기능을 업데이트 했을 때 올림
2






patch 버전
기존 기능에 발생한 버그 수정

 

4. 기타 npm 명령어

  • npm outdated : 업데이트 가능한 패키지를 확인
  • npm update [패키지] : 패키지 업데이트
  • npm uninstall [패키지] : 패키지 제거 (npm rm [패키지])
  • npm search [검색어] : npm의 패키지 검색
  • npm info [패키지] : 패키지의 세부 정보를 파악
  • npm adduser : npm 로그인을 위한 명령어
  • npm whoami : 로그인한 사용자 확인
  • npm logout : npm adduser로 로그인한 계정을 로그아웃할 때 사용
  • npm deprecate [패키지] [버전] [메시지] : 해당 패키지를 설치할 때 경고 메시지를 띄우게 하는 명령어
  • npm publish : 자신이 만든 패키지 배포
  • npm unpublish : 배포한 패키지 제거할 때 사용
  • npm ci : package.json 대신 package-lock.json에 기반하여 패키지 설치

 

728x90

관련글 더보기