npx 와 npm 의 명령어 차이는 뭐야?




npmnpx는 둘 다 Node.js 패키지 생태계에서 자주 쓰이는 커맨드이지만, 목적과 동작 방식이 조금 다릅니다. 아래 표와 설명을 참고하세요.

구분 npm npx
주요 역할 패키지(모듈)를 설치·관리하고, 스크립트를 실행 설치된 패키지의 바이너리(실행 파일)를 바로 실행
설치 방식 npm install <패키지명> 으로 로컬/글로벌에 설치 로컬에 없으면 일시적으로 내려받아 실행, 설치는 하지 않음
사용 예시 npm install express npx create-react-app my-app
장점 프로젝트 의존성을 package.json에 기록 전역 설치 없이도 명령어 사용 가능 → 환경 오염 최소화
단점 전역 설치 시 버전 관리·의존성 충돌 우려 매번 다운로드하므로 네트워크가 느리면 실행 지연될 수 있음

1. npm

  • 목적: 패키지(라이브러리)를 프로젝트에 추가하거나 제거하고, package.json에 의존성을 기록

  • 주요 커맨드:

    • npm install <패키지명>: 로컬 node_modules 에 설치 + package.json에 기록

    • npm install -g <패키지명>: 글로벌 영역에 설치

    • npm run <스크립트명>: package.jsonscripts 항목 실행


2. npx

  • 목적: 패키지를 “설치”하지 않고도, 패키지 내부에 포함된 실행 파일(바이너리)을 곧바로 실행

  • 동작 흐름:

    1. **로컬 node_modules/.bin**에서 바이너리 검색

    2. 없으면 글로벌 또는 일시적으로 원격 레지스트리에서 내려받아 실행

    3. 실행 후 캐시에서 제거 (설치 기록 없음)

  • 주요 사용 사례:

    • 프로젝트 생성 툴: npx create-react-app my-app

    • CLI 유틸: npx typescript --init

    • 테스트/빌드 툴: npx jest


언제 무엇을 써야 할까요?

  • 반복적으로 사용할 패키지라면 → npm install로 로컬/글로벌 설치

  • 한 번만 실행해 볼 툴이나 프로젝트 생성 스캐폴딩은 → npx가 편리

이렇게 쓰임새에 따라 npmnpx를 적절히 활용하시면 됩니다.

댓글 남기기