[Javascript] pnpm

clo승·2023년 7월 26일
1

pnpm이란?

Performent Node Package Manager
한마디로 표현하면 "빠르고 효율적인 javscript 패키지 매니저"라고 할 수 있다


npm / yarn / pnpm

1. npm

  • npm은 node와 'pkgmakeinst'라는 bash 유틸리티의 합성어로, 기존에 프로젝트 의존성을 수동으로 다운로드 해야 했던 불편함을 혁신적으로 개선한 패키지 매니저의 시초이다.

  • node.js 내부에 내장되어 있어 추가적인 설치 작업이 필요하지 않다는 것이 장점!

  • 가장 오래 된 패키지인 만큼 자료가 많다.

2. yarn

  • yarn은 2017년 페이스북 및 구글 개발자들이 함께 내놓은 패키지 매니저로

  • 대부분의 개념과 프로세스가 npm을 기반으로 하고 있지만, npm의 큰 취약점이던 보안 문제를 해결한 것이 장점이다.

  • 여러 개의 패키지를 순차적으로가 아닌 병렬적으로 설치해 주어 속도나 안정성도 개선되었다

  • 현재는 yarn berry라는 버전이 사용 되는 중

3. pnpm

  • pnpm은 개발자 Zoltan Kochan이 2017년 내놓은 패키지 매니저로, 'performant npm(효율적인 npm)'의 약자이다.

  • pnpm의 장점은 이름처럼 '효율성'인데, 프로젝트의 node_modules 내부에 매번 패키지를 설치했던 기존 매니저들과 달리 pnpm은 글로벌 저장소에 패키지를 물리적으로 한 번만 저장하여 디스크 공간을 절약하고, 향상된 성능을 보인다는 장점이 있다.


pnpm 특징

효율적인 디스크 사용
npm/yarn 과 비교했을때, pnpm은 node_modules 폴더의 패키지는 중복으로 저장되지 않아 효율적인 디스크사용이 가능하고 성능에도 크게 도움을 준다.

예) sample_1, sample_2, sample_n라는 프로젝트가 있고, 각 프로젝트가 pkg_1을 포함하고 있을 때
pkg_1의 크기가 2MB라고 가정하면, npm이나 yarn 의 경우는 아래와 같이 각 프로젝트별로 node_modules 폴더 안에 pkg_1을 포함하기에 총 6MB의 디스크를 차지한다.

반면, pnpm의 경우엔 별도의 저장소가 있고,(.pnpm_store)
각 프로젝트에서는 pkg_1에 대한 바로가기를 만든다. (엄밀히 표현하면 심볼릭링크, symbolic link)
따라서 4MB(2MB*2)의 크기만큼 중복된 저장공간을 효율화 할 수 있다.

프로젝트가 많을수록 효과는 커진다!


pnpm 설치방법

profile
무엇이든 해내는 사람

0개의 댓글