pnpm 이란?
기존의 npm 과 yarn 의 비효율을 개선한 노드 패키지 매니저이다.
기존 노드 패키지 매니저의 문제
npm 으로 여러 프로젝트를 관리하다보면, 여러 프로젝트에서 모두 같은 의존성을 사용하는 경우가 있다. 이를테면 react 프로젝트 100개가 로컬에 있을 수 있다. 이 때, 기존의 npm 이나 yarn 으로 프로젝트를 관리하는 경우에는 100개의 프로젝트 내부의 node_modules
디렉토리에 각각 리액트 라이브러리를 모두 설치한다. 결과적으로 로컬 하드 디스크에는 실질적으로 똑같은 파일이 100 copy 가 설치되는 것이다.
문제 해결
pnpm 은 content addressable file store
라는 것을 이용해 문제를 해결한다. 단순하게 파일 이름으로 해당 파일을 접근하는 것이 아니라 git
에서 커밋에 hash id
를 부여하듯 각각의 의존성 파일에 hash id
를 부여하고 관리한다. 이 과정에서 중복되는 패키지는 동일한 hash id
를 얻게 된다.
pnpm 은 홈디렉토리의 글로벌 저장소인 ~/.pnpm-store
에 모든 패키지를 저장하는 저장소를 두고, 중첩된 패키지는 단 한번만 설치한다. 중복된 의존성에서 같은 패키지를 사용하는 경우에는 파일을 중복으로 설치하는 대신 이 주소를 이용하여 hard link
를 만들어 연결해준다.
결과적으로 single source of truth 가 이루어지며 상당한 디스크 공간을 절약할 수 있다.
'프론트엔드 > 노드 패키지 관리 매니저' 카테고리의 다른 글
node_modules 를 수정하고 프로젝트에 적용하는 방법 (2) | 2022.10.21 |
---|---|
윈도우즈에서 node_modules 빨리 지우기 (rm -rf 사용하기) (0) | 2022.10.21 |