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
반응형
'한 걸음 > etc' 카테고리의 다른 글
[npm] 내가 만든 라이브러리를 배포해보자(npm publish) (0) | 2024.05.27 |
---|---|
mac 개발환경 기본설정 (0) | 2024.03.04 |
아르코 인공지능퍼포먼스 특강 (0) | 2023.06.24 |
쿠키 vs 로컬스토리지 vs 세션스토리지 (0) | 2023.03.03 |
윈도우 cp949 문제로 pip install 안될 때 해결 (feat. kappa, zappa) (0) | 2022.10.05 |