관리 메뉴

프론트엔드 정복하기

pnpm 패키지 관리자 본문

레파지토리 구성하기

pnpm 패키지 관리자

GROWNFRESH 2023. 9. 17. 18:03

 

pnpm 의존성 관리 기법은 크게 두가지 관점에서 볼 수 있다.

 

1. 글로벌 저장소(~/.pnpm-store) 에 모든 패키지를 저장하고, 필요할 때마다 hard link(symlink)를 연결해서 사용하는 구조

2. hoist 를 사용해서 flat하게 만들지 않고 npm@~2처럼 nested하게 저장하는 구조

 

 

 

pnpm 은 hoisting 방식이 아닌, content-addressable storage 전략을 사용한다.

 

패키지는 디스크상 한 곳에만 저장 된다. (홈디렉토리의 글로벌 저장소인 ~/.pnpm-store)패키지 파일들은 해당 위치에서 하드링크가 되고 모든 프로젝트가 이를 공유할 수 있는 구조로 만들어진다. 따라서 디스크 공간을 절약할 수 있다.

 

플랫하지 않은 node_modules

호이스팅 방식은 여러 패키지 간 종속 관계를 이해하고 풀어서 만들어야 하기에 속도가 느렸다.

따라서 호이스팅으로 플랫하게 만들지 않고, 옛 npm2 버전처럼 node_modules/A/node_nodules/B... 로 만든다. 그리고 패키지 별로 격리된 공간 내에서만 플랫하게 만들어 심링크로 연결한다.

 

 

 

참고 사이트