[Node.js_memo] pnpm

Lina Hongbi Ko·2024년 12월 11일

Node.js_memo

목록 보기
2/2
post-thumbnail

새로운 팀프로젝트를 들어가면서 pnpm으로 작업하자는 얘기가 나왔다. 그동안 npm, npx, yarn만 사용해봤던지라 pnpm은 이번에 처음 듣게 되어서 어떻게 설치하고, 사용하면 될지 찾아보고, 잊지 않기 위해 정리하려 한다.

PNPM

: Performant Node Package Manager.
2016년 npm과 yarn의 단점을 보완하기 위해 만들어진 패키지 관리자라고 한다. yarn처럼 패키지를 캐싱하여 빠르게 설치할 수 있고, npm과 비슷한 구조를 가지고 있어 호환성이 높다고한다.

또한 패키지도 병렬로 설치되어 모든 패키지를 한꺼번에 설치한 후, 의존성 트리와 같은 형태로 링크만 걸어주기 때문에 설치 프로세스가 굉장히 빠르다. 그리고 npm/yarn과 비교했을때 패키지가 중복으로 저장되지 않는다. 프로젝트에서 중복으로 설치되는 패키지는 캐싱하여 디스크 용량을 절약하고, 빌드 시간을 단축시킨다.
예를 들어, sample_1, sample_2, sample_n 프로젝트들이 있을 때, 각 프로젝트가 package_1을 포함할 때, package_1의 크기가 2MB라고 할때, npm의 경우에는 각 프로젝트가 pckage_1을 포함해 총 6MB의 디스크를 차지한다.

그러나 pnmp을 사용했을 경우, .pnpm_store이라는 저장소가 있고, 각 프로젝트에서 package_1에 대한 바로가기를 만든다.(의존성 트리에서 링크를 걸어준다는게 이 내용!-> 심볼릭링크를 걸어준다고 한다.) 이렇게 하면 원본과 바로가기에 대한 저장공간만 사용하면 되어서 (2MB * 2) 4MB 크기 만큼 저장공간을 효율화 할 수 있다. 이는 프로젝트가 많아지면 많아질수록 더욱 효과가 커진다.

그러나 반대로 단점도 있는데, 일부 라이브러리와의 호환성 문제와 플러그인 통합문제가 있을 수 있다고 한다. 이밖에도 사용사수가 상대적으로 더 적어서 생태계가 부족할 수 있고, 처음 설치했을 때는 npm보다는 느리다고 한다.(처음 설치 이후에는 npm보다 빠름)

📍PNPM 기본 명령어

  • pnpm install : 패키지 설치
  • pnpm add [package] : 패키지 설치
  • pnpm remove [package] : 패키지 제거
  • pnpm update : 종속성을 최신 버전으로 업데이트
  • pnmp list : 프로젝트에 설치된 모든 패키지 표시

참고 자료

https://lasbe.tistory.com/200
https://devscb.tistory.com/135
https://dev-blackcat.tistory.com/44

profile
프론트엔드개발자가 되고 싶어서 열심히 땅굴 파는 자

0개의 댓글