Node.js 교과서 : 5. 패키지 매니저

전지연·2025년 10월 31일

GDGoC_2025

목록 보기
6/16
post-thumbnail

5-1. package.json

npm이란

: Node Package Manager

  • 다른 사람들이 만든 소스 코드들을 모아둔 저장소
  • 이미 있는 기능을 다시 구현할 필요가 없어 효율적
  • 패키지 : npm에 업로드된 노드 모듈
  • 모듈이 다른 모듈을 사용할 수 있듯 패키지도 다른 패키지를 사용할 수 있음
  • 의존 관계라고 부름

package.json

: 현재 프로젝트에 대한 정보와 사용 중인 패키지에 대한 정보를 담은 파일

  • 같은 패키지라도 버전별로 기능 다를 수 있음
    -> 버전 기록 필요
  • 동일한 버전 설치하지 않으면 문제 생길 수 있음
  • 노드 시작 전 package.json부터 만들고 시작(npm init 명령어 사용)

package.json 속성

npm 스크립트

  • scripts : 터미널에 치는 명령어들의 별명
  • scripts 안에 test
    => npm run test 명령어 사용 : exit 1을 발생시키며 종료
  • scripts 안에 start
    => npm run start : 시작(start 사용 시 run은 생략가능)

패키지 설치하기

  • express 설치 - 콘솔창에 명령어 입력
    => dependencies에 express가 추가됨
npm i express
  • 패키지는 한 번에 여러 개를 추가해 줄 수 있다
npm i {package1} {package2}
  • devDependencies : 개발용으로만 사용하는 패키지
    => 명령어에 -D를 추가하면 devDependencies에 패키지를 추가할 수 있다
npm i -D nodemon

5-2. node_modules와 npx, SemVer

node_modules는 용량 많이 차지 - 배포시엔 삭제

배포 후 npm i 명령어를 사용해서 다시 설치한다(npm i가 불가능한 폐쇄망에서는 삭제x)

rimraf 패키지 전역 설치

npm i -g rimraf
  • -g : 전역 설치 -> dependencies에 표시 x
    => 이 경우에는 rimraf라는 명령어가 생성
rimraf node_modules

: node_modules 폴더를 삭제

최근에는 global 설치 기피

설치 여부를 알수 없음
-> -D를 사용한 개발용으로 설치 혹은 그냥 설치

npm i rimraf -D

이후 글로벌 명령어로 사용 -> npx 사용

npx rimraf node_modules   -> node_modules 삭제

package-lock.json
정확한 버전 기록용

SemVer 버저닝 방식

  • 노드 패키지의 버전은 SemVer(유의적 버저닝) 방식을 따름
  • 숫자 3자리 형식
  • Major(주 버전), Minor(부 버전), Patch(수 버전)
  • Major : 하위 버전과 호환되지 않은 수정 사항이 생겼을 때 올림
  • Minor : 하위 버전과 호환되는 수정 사항이 생겼을 때 올림
  • Patch :기능에 버그를 해결했을 때 올림

버전 기호 사용

  • ^1.1.1 : 패키지 업데이트 시 minor 버전까지만 업데이트(2.0.0 버전은 안됨)
    => 첫 번째 자리만 1이어야 한다는 뜻(minor, patch 자리는 신경x)
  • ~1.1.1 : 패키지 업데이트 시 patch 버전까지만 업데이트(1.2.0 버전은 안됨)
    => 두 번째 자리만 1이어야 한다는 뜻(patch 자리는 신경x)
    -> ~는 잘 사용하지 않는다.
  • 이상, 이하, 초과, 미만 표기 기능(>=, <=, >, <)
  • @latest : 최신
  • @next : 가장 최신 배포판 사용 가능(불안정함)
  • 알파/베타/RC 버전 존재할 수도
    ex) 1.1.1-alpha.0
    2.0.0-beta.1
    2.0.0-rc.0

5-3. npm 명령어들 알아보기

npm 명령어 문서로 이동하면 다양한 명령어들을 살펴볼 수 있다.

많이 쓰는 npm 명령어

  • npm adduser로 npm계정을 등록할 수 있다.

5-4. npm 배포하기

서버 배포

index.js를 배포하고자 하려면 index.js와 package.json이 있는 위치에서 명령어 npm publish를 사용해야 한다.

403에러 발생
1. npm 계정 이메일 계정 미인증
=> 인증해 주면 된다
2. package.json에 있는 name이 기존 서버와 겹침
=> package명을 변경해 주면 된다.

서버 배포 취소

서버를 없애는 경우에는 서버 생성 72시간 전에 unpublish 명령어를 사용해 주면 된다.

npm unpublish --force { 서버 name }

0개의 댓글