pnpm 기초

pnpmpackage managernpmnodejs
avatar
2025.04.15
·
4 min read

PNPM 정의

pnpmPerformant NPM의 약자로, NodeJS 환경에서 사용되는 고성능 패키지 매니저이다.
기존의 npm, yarn과 동일한 목적을 가지지만, 저장 공간 절약과 빠른 설치 속도가 특징이다.

특징

- 하드 링크 (hard link)를 이용한 패키지 저장 구조를 가지고 있다.
- 동일한 패키지를 중복으로 다운로드하지 않는다.
- 모노레포 (Monorepo) 환경에 최적화 되어 있다.
- npmyarn과 높은 호환성을 유지한다.


설치 방법

조건

- NodeJS 14 버전 이상
- npm 사용 가능

설치 명령어

npm install -g pnpm

설치 확인 (버전 확인)

pnpm -v

기본 사용법

프로젝트 초기화

pnpm init

패키지 설치

npm install                 # 전체 의존성 설치
pnpm add react              # 패키지 추가
pnpm add -D typescript      # devDependencies로 추가
pnpm remove react           # 패키지 제거

실행 명령

pnpm run build              # npm script 실행
pnpm dev                    # script 이름 그대로 실행 가능

주요 명령어 요약

명령어

설명

pnpm install

의존성 설치 (기존 package.json 기준)

pnpm add <pkg>

새 패키지 설치

pnpm add -D <pkg>

개발용 의존성 설치

pnpm remove <pkg>

패키지 제거

pnpm update

패키지 업데이트

pnpm list

설치된 패키지 목록 출력

pnpm run <script>

정의된 npm 스크립트 실행

pnpm dlx <pkg>

npx처럼 실행 후 자동 삭제


pnpm과 모노레포(Monorepo)

pnpmworkspace 기능을 제공하여, 다수의 프로젝트를 하나의 저장소로 관리할 때도 효율적으로 동작한다.

예시 pnpm-workspace.yaml

packages:
  - 'packages/*'
  - 'apps/*'

모노레포 구조를 고려한 성능 최적화가 잘 되어 있어, 기업에서도 많이 채택하는 방식이다.


node_modules의 차별화

pnpm은 기존의 플랫(flat) node_modules 대신, 심볼릭 링크 기반 구조를 사용한다.

- 모든 패키지는 전역 저장소에 캐시된다.
- 프로젝트에는 필요한 패키지들만 링크되어 공간과 속도를 모두 절약한다.


요약

항목

pnpm 특징

설치 속도

매우 빠름 (캐싱 구조 덕분)

디스크 사용량

낮음 (중복 저장 없음)

호환성

npm/yarn과 대부분 호환

주요 대상

모노레포, 대규모 프로젝트


참고 링크

- 공식 홈페이지: https://pnpm.io
- GitHub 저장소: https://github.com/pnpm/pnpm
- 모노레포 가이드: https://pnpm.io/monorepo







- 컬렉션 아티클