• Feed
  • Explore
  • Ranking
/
/
    Package Manager

    pnpm 기초

    pnpmpackage managernpmnodejs
    전
    전상욱
    2025.04.15
    ·
    4 min read

    PNPM 정의

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

    특징

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


    설치 방법

    조건

    - 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)

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

    예시 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







    - 컬렉션 아티클