31. Node.js 입문주차 - Package Manager, npm (항해 12일차)

코이그·2023년 4월 14일

항해99

목록 보기
30/54

Package Manager

패키지를 손쉽게 다루는 작업을 안전하고 편리하게 사용하기 위한 툴.
다른 사람의 코드를 다운로드하거나 내 코드를 배포하는 것이 가능하다.

Package

패키지 매니저에 업로드된 모듈을 패키지라고 부른다.
패키지는 다른 패키지를 사용할 수 있다. (의존 관계)

Node.js 패키지 매니저

대표적으로 npm, yarn이 있다.

npm

JavaScript에서 사용할 수 있는 패키지 관리자이다.
파이썬에서 flask, bs4 등의 모듈을 설치할 때 pip install로 설치했듯이 JavaScript에서는 필요한 모듈/라이브러리를 npm으로 설치할 수 있다.
(express 라이브러리)

yarn

npm의 약점을 보완하여 편리한 기능이 추가되었고 더 빠른 속도로 패키지를 관리할 수 있다.
한 프로젝트에서 npm과 yarn을 모두 사용 x

Package.json

설치한 패키지들의 버전을 관리할 때 사용하는 파일.

Package.json에는 설치한 패키지, 버전을 비롯해 프로젝트명, 작성자, 라이센스 정보 등 다양한 메타 데이터를 기록할 수 있다.

npt과 yarn 모두 동일한 package.json 파일을 참조한다.

Package-lock.json

Package.json에 기록되어있는 패키지 외에도 node_modules에 들어있는 패키지에 대한 정보(버전과 의존 관계)가 상세하게 기록되어 있다.

npm으로 패키지를 설치/수정/삭제할 때마다 패키지들의 의존 관계가 package-lock.json 파일에 저장된다.

npm 실습

npm init

package.json 파일 생성 (npm으로 설치한 모듈 정보)

  • 새로운 프로젝트나 패키지를 만들 때 사용
  • 프로젝트명, 버전, Github URL 등 프로젝트와 관련된 메타데이타 설정 가능

npm init 실행 예시)

입력한 정보대로 package.json 파일이 생성된다.

npm install package_name

특정 패키지/모듈 설치
예) npm install express // express라는 패키지 설치

  • package.json에는 설치한 패키지들의 정보(dependencies)가 기록되고

  • package-lock.json에는 설치한 패키지들의 의존 관계가 자세하게 기록된다.

  • 설치된 패키지들은 실제로는 node_modules 폴더에 할당된다 (node_modules는 배포 x)

  • devDependencies (개발 단계에서만 필요한 모듈 설치)
    npm install -D module_name

profile
COYG🔴⚪

0개의 댓글