pnpm은 npm에 비해 성능과 디스크 효율성 개선한 패키지 매니저
npm이나 yarn 사용하면 프로젝트의 node_modules 폴더에 각 패키지의 실제 복사본 저장됨
pnpm은 content-addressable store라는 전역 저장소에 패키지를 보관한 후, 각 프로젝트에선 하드 링크와 심볼링 링크를 활용해 해당 패키지의 링크만 참조하도록 함
이로 인해 동일한 패키지를 여러 프로젝트에서 공유할 수 있어 설치 속도 크게 향상되고 스토리지 용량 줄어듬
이외에도, 유령 의존성 문제 발생하지 않으며, workspace 기능을 통해 한 프로젝트에 여러 패키지가 있는 모노레포를 구성하는 데 활용할 수 있는 장점
Yarn Berry는 Yarn의 2.0 버전 이상 가리키며, PnP(Plug'n'Play)와 Zero Install을 도입하여 패키지 관리 방식 개선한 패키지 매니저
기존 mode_modules폴더 없애고.pnpcjs파일을 이용하여 의존성 관리하는 것이 특징
.pnp.cjs엔 패키지의 위치와 의존성 정보들이 완전하게 기술되어 있어 패키지를 찾는 과정이 효율적이고 정확하게 이뤄짐
패키지들이 .yarn/cache 디렉토리에 zip 압축 파일 형태로 관리되어 용량이 작다는 장점
이로 인해 피키지 설치 속도 빠르며 스토리지 용량 아낄 수 있음
똰 용량이 크게 줄어들었기 때문에 의존성들을 버전 관리에 포함시켜 git으로 관리할 수 있게 됨
의존성을 버전 관리에 포함시키는 것을 Zero Install
이를 통해 저장소를 새로 복제하거나 브랜치를 이동할 때 의존성을 설치할 필요가 없게 됨
이외에도 유령 의존성이 발생하지 않으며, workspace 기능을 지원한다는 장점