Package Manager

강준석·2023년 4월 15일
0

Node.js 기초

목록 보기
7/15

Package Manager

Package Manager 란?

  • 패키지 매니저는 패키지르 손쉽게 다루는 작업을 안전하고 편리하게 사용하기 위한 툴
  • 다른 사람들이 만들어준 코드를 다운로드 받거나, 자신의 코드를 배포하여 다른 사람이 쓸 수 있도록 할 수 있다.
  • Node.js에서 대표적으로 사용하는 패키지 매니저는 npmyarn이 있다.

npm 이란?

  • npm은 자바스크립트에서 사용할 수 있는 패키지(모듈) 관리자
  • Node.js에서는 npm을 통해 패키지를 설치할 수 있다.
  • npm을 통해 사용할 라이브러리를 쉽게 설치, 버전관리, 제거할 수 있다.
  • npmjs.com 에서 검색해서 확인할 수 있는 패키지만 설치가 가능.

yarn 이란?

  • npm의 대체제로 FaceBook이 출시한 패키지 매니저.
  • npm에서 부족한 부분을 보완하여 편리한 기능이 추가되었고, 더욱 빠른 속도로 패키지를 관리할 수 있는 패키지 매니저.

하나의 프로젝트에서 npm과 yarn 2가지 같이 써두될까? 놉!

  • npmyarn을 동시에 사용할 경우 모듈을 설치하거나 버전을 수정할 때 오류가 발생할 수 있다.
  • 예를들어 npm으로 설치한 버전과 yarn에서 설치한 버전이 다르게 설치될 경우 각 버전들이 다르게 관리될 수 있어 문제가 발생하거나 충돌이 발생할 수 있다.
  • 특별한 이유가 존재하지 않다면, 2가지의 패키지 매니저를 같이 사용하지 않는것이 좋다.
  • 그냥 같이 쓰지 말자...!!

Package.json 이란?

  • 설치한 패키지들의 버전을 관리할 때 사용하는 파일
  • 특정한 버전을 설치할 때 필요
  • 패키지 관리 외, 프로젝트명, 작성자, 라이센스 정보등 다양한 메타 데이터들을 기록
  • npm,yarn모두 동일한 package.json파일을 참조

Package-lock.json 이란?

  • package.json파일에서 정의한 패키지 외에도 node_modules에 들어있는 패키지들의 버전과 의존 관계가 상세하게 기록
  • npm으로 패키지를 설치, 수정, 삭제할 때마다 패키지들의 의존 관계package-lock.json파일에 저장
  • 저장된 패키지들은 정확히 일치하는 버전만 기록, 프로젝트에서 의존하는 패키지 버전을 정확하게 관리할 때 사용

배포를 위한 npm 시작하기

  • 명령어를 통해 package.json 파일을 만들 때 사용된다. package.json 은 npm 으로 설치된 모듈에 대한 정보를 저장.
  • 새로운 프로젝트나 패키지를 만들 때 사용.
  • 패키지명, 프로젝트 버전, Github URL등 프로젝트와 관련된 다양한 정보를 설정가능.

node_modules

  • package.json 파일 내용 기반으로 npm install 명령어를 통해 설치된 모듈 파일들이 모여있는 장소.
  • package.json에 설정된 모듈과 해당 모듈들이 참고하고 있는 또 다른 모듈도 함께 설치.
  • 사용중인 환경에 맞는 파일들이 설치되기 때문에 이 폴더는 다른곳에 공유하거나 배포할 때 포함하면 안된다.

dependencies

  • 코드 실행 시 반드시 필요한 패키지의 이름과 버전을 표시한다.
    • 즉, tsc/webpack/parcel 등의 transpiler/bundler를 통해 빌드되어 순수한 자바스크립트 코드를 실행할 때 필요한 패키지는 모두 dependencies에 속해야 한다.
  • npm install 시 표기된 패키지가 node_modules 디렉터리에 없으면 표시된 버전의 패키지를 설치한다.

devDependencies

  • 코드 실행 시가 아닌 개발 또는 빌드 환경에서 필요한 패키지의 이름과 버전을 표시한다.
    • typescript/webpack/eslint/prettier 등의 개발 및 빌드 환경에서만 필요한 패키지가 해당될 수 있다.
    • 실질적으로 코드를 실행할 때 필요하지 않은 패키지라면 모두 devDependencies에 해당될 수 있다.
  • npm install 시 표기된 패키지가 node_modules 디렉터리에 없으면 표시된 버전의 패키지를 설치한다.
profile
백엔드개발자를 목표로 공부중

0개의 댓글

관련 채용 정보