Package manager: npm, pnpm, yarn, yarn berry

eunjee·2024년 10월 21일
0
post-thumbnail

Package manager

패키지 매니저는 개발에 필요한 다양한 패키지를 설치, 업데이트, 수정, 삭제하는 등의 작업을 편리하게 도와주는 도구입니다.

프로젝트를 진행하다 보면 해당 프로젝트에 필요한 다양한 패키지들이 있고 이 패키지들을 설치하고 관리해야하는 경우가 있는데, 이 패키지들을 의존성 있게 관리해주는 것이 패키지 매니저입니다.

패키지 매니저의 주요 기능

  1. 패키지 설치

    패키지 매니저를 사용하여 프로젝트에 필요한 패키지를 설치할 수 있습니다. 패키지는 일반적으로 오픈소스 라이브러리이며, 패키지 매니저를 통해 패키지의 이름 또는 버전을 지정해 설치할 수 있습니다.

  2. 의존성 관리

    패키지는 다른 패키지에 의존할 수 있으며, 패키지 매니저는 이러한 의존성을 자동으로 해결하여 필요한 패키지들을 설치합니다.

  3. 버전 관리

    특정 버전의 패키지를 설치하거나 업데이트할 수 있으며, 프로젝트가 정확한 버전의 패키지를 사용하도록 보장할 수 있습니다.

  4. 스크립트 실행

    프로젝트에 미리 정의된 스크립트를 실행하는 기능을 제공합니다. 이를 통해 빌드, 테스트, 배포 등의 자동화된 작업을 수행할 수 있습니다.

패키지 매니저 비교: npm, yarn, pnpm

프론트엔드에서 가장 많이 사용되는 패키지 매니저로 3가지가 있는데 바로 npm, yarn, pnpm 입니다.

먼저 이 3가지 패키지 매니저에 대해 어떤 특징들이 있고 어떤 장점들이 있는지 먼저 살펴본 후, 각각 상황에 따라 사용하기 좋은 패키지 매니저를 살펴보도록 하겠습니다.

1. npm

특징

Node.js 생태계의 가장 대표적인 패키지 매니저입니다. Node.js와 함께 기본적으로 설치되며, 많은 개발자들이 널리 사용하고 있습니다. 강력한 CLI(Command Line Interface)를 제공하여 패키지 설치, 버전 관리, 의존성 해결 등의 기능을 수행합니다.

차이점

패키지 설치 시 패키지들은 각각 별도로 설치됩니다. 이로 인해 공유된 의존성이 중복으로 설치될 수 있습니다. 의존성 트리가 깊어질수록 패키지 설치 속도가 느려지고, 디스크 공간을 많이 차지할 수 있습니다.

사용 방법

npm init

해당 명령어를 입력해 npm을 사용할 수 있는 초기 환경을 설정해주면 됩니다.

2. pnpm

특징

npm의 의존성 문제를 해결하기 위해 고안된 패키지 매니저로, 고유 설치와 플랫 노드 모듈을 통해 의존성 관리를 최적화합니다. 다중 프로젝트에서 의존성을 공유하고, 중복 설치를 피해 저장 공간을 절약할 수 있습니다.

차이점

npm과 달리 의존성을 공유하여 저장 공간을 최적화 합니다. Flat node_modules 구조를 사용하여 파일 시스템의 깊이를 줄이고 의존성 트리를 단순화합니다. 동시에 설치 기능을 지원하여 의존성 설치 속도를 향상 시킵니다.

사용 방법

설치 방법 링크를 참고해서 설치하면 됩니다.

2. yarn

특징

Facebook에서 개발한 패키지 매니저로, npm과 비슷한 목적을 가지고 있습니다. npm의 단점을 보완하고 더 나은 성능과 안정성을 제공하며, 여러 개의 패키지를 병렬로 설치하여 빠른 속도를 보장합니다. yarn.lock 파일을 사용하여 의존성을 더욱 확실히 관리합니다.

차이점

여러 패키지들을 동시에 가져오고 설치하도록 최적화되어 있어 npm보다 빠른 의존성 설치 속도와 패키지 버전 관리를 제공합니다. yarn.lock 파일을 사용해 의존성 트리를 고정시켜 재현 가능한 빌드를 지원합니다. 캐시 기능을 재공하여 패키지 다운로드를 최적화 합니다.

사용 방법

yarn의 경우 npm과는 달리 별도의 설치가 필요하기 때문에 npm을 통해 먼저 설치를 해야합니다.

npm install -g yarn

컴퓨터 모두에서 yarn을 사용할 수 있도록 global 키워드를 사용해 설치를 해줍니다.

설치 후에는 yarn , yarn init 명령어를 통해 yarn 폴더를 생성한 후 설정을 해주면 됩니다.

4. yarn berry

특징

Yarn의 새로운 버전으로, 다중 패키지 프로젝트를 위한 기능을 강화한 패키지 매니저입니다. Zero-installPlug’n’Play를 통해 의존성 설치 속도를 향상시키고 저장 공간을 절약합니다. Workspaces 기능을 제공하여 여러 패키지를 하나의 저장소로 관리할 수 있습니다.

차이점

Zero-install 기능을 통해 의존성을 로컬에 별도로 설치하지 않고 필요한 시점에 즉석에서 사용합니다. Plug’n’Play 를 통해 가상 파일 시스템을 사용하여 의존성 설치를 최적화 합니다. Workspaces 기능을 통해 모노레포 형식의 프로젝트를 관리할 수 있습니다.

사용 방법

npm install -g yarn // yarn을 전역으로 다운 받습니다.
yarn set version berry // 프로젝트 루트로 이동해서 yarn berry버전으로 세팅
yarn install // yarn으로 패키지들을 다운로드

요약

  • npm: 기본적인 패키지 매니저
  • pnpm: npm의 의존성 문제를 해결한 패키지 매니저
  • yarn: npm보다 빠른 의존성 설치와 버전 관리를 제공하는 패키지 매니저
  • yarn berry: 다중 패키지 프로젝트를 위한 기능을 강화한 yarn의 버전

pnpm과 yarn berry는 모노레포 환경에서 효과적으로 사용될 수 있습니다.


yarn berry로 마이그레이션하는 과정 정리: yarn berry

0개의 댓글