npm과 pnpm

2024. 3. 6. 15:22
반응형

 

npm

개발자가 하나의 패키지를 설치한다고 해도, 꼬리에 꼬리를 무는 종속성(dependency) 패키지까지 모두 설치된다(Ghost Dependency)

이 과정에서 어떤 패키지가 중복 저장되거나, 설치를 의도하지 않은 패키지를 사용할 수 있게 되는 등 잠재적인 문제가 발생할 수 있다.

 

npm은 패키지 설치 시 패키지들을 각각 별도로 설치한다.

이로 인해 공유된 의존성이 중복으로 설치될 수 있고, 의존성 트리가 깊어질수록 패키지 설치 속도가 느려지며 디스크 공간을 많이 차지할 수 있다.

 

 

pnpm (performant npm)

npm의 의존성 문제를 해결하기 위해 고안된 패키지 매니저.

 

pnpm은 패키지를 node_modules에 직접 설치하는 대신, 전역 저장소(Virtual Store)에서 패키지를 공유하는 구조를 사용한다.

 

- 저장소(Content-addressable store): 패키지 파일 원본

- 가상 저장소(virtual store): 저장소의 하드 링크

- node_modules: 가상 저장소의 심볼릭 링크

 

 

Flat node_modules(평탄화) 구조를 활용하여 의존성을 공유하기 때문에 중복 설치를 피하고 의존성 관리를 최적화할 수 있다.

의존성 트리가 단순화되어 저장공간 절약 및 설치속도 향상 효과를 기대할 수 있다.

 

 

 

 

 

 

이해하기 쉽게 정리된 블로그

https://jeonghwan-kim.github.io/2023/10/20/pnpm

 

pnpm

처음 들었을 때 "p"가 무슨 뜻일지 궁금했다. 홈페이지에서 바로 찾을 수 없었고 인터넷에 검색해도 잘 나오지 않았다. performant npm '승진, 성능 기준에 맞는' 이런 뜻인데 '고성능 npm'이라고 이해

jeonghwan-kim.github.io

 

반응형

BELATED ARTICLES

more