pnpm에 대해 간단하게 알아보자

Yeshin Lee
2 min read6 days ago

--

node.js 프로젝트에서 패키지 매니저는 필수다. 최근 프로젝트를 진행하면서 pnpm을 사용하게 되었는데, 이 참에 pnpm에 대해 간단하게 알아본다.

공식 홈페이지에서 pnpm을 빠르고 디스크 용량을 효율적으로 관리하는 패키지 매니저(Fast, disk space efficient package manager)라고 소개한다. 그러면서 node 패키지 매니저의 역사를 보여주는 영상과 함께 pnpm의 특징을 설명한다.

  • 빠르다: npm보다 최대 2배 빠르다. 이는 프로젝트 규모가 커질수록 더더욱 두드러진다.
  • 효율적이다: node_modules 내 (종속성을 가지는) 파일들은 콘텐트 주소 지정이 가능한 단일 저장소에서 복제되거나 하드 링크된다.
  • 모노레포 지원: 레포지토리에서 여러 패키지를 기본적으로 지원한다.
  • 엄격하다: 기본적으로 비-플랫 node_modules를 생성해서 코드가 임의의 패키지에 접근할 수 없다.

npm을 사용할 때는 종속성을 사용하는 프로젝트가 100개라면 해당 종속성의 사본 100개가 디스크에 저장된다. 반면 pnpm은 해당 종속성이 콘텐츠 주소 지정이 가능한 스토어에 저장되므로 종속성의 다른 버전에 의존하는 경우, 다른 파일만 스토어에 추가된다. 따라서 프로젝트간의 동일한 버전의 종속성을 공유할 수 있다.

pnpm은 npm을 사용해서 설치할 수도 있다.

npm install -g pnpm

설치가 완료되면, pnpm install로 의존성 패키지를 설치할 수 있으며 전반적으로 npm 명령어와 비슷하다. 여러 패키지를 관리하는 모노레포의 경우, pnpm workspace를 사용하면 된다.

--

--