npm과 npx는 둘 다 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.json의scripts항목 실행
-
2. npx
-
목적: 패키지를 “설치”하지 않고도, 패키지 내부에 포함된 실행 파일(바이너리)을 곧바로 실행
-
동작 흐름:
-
**로컬
node_modules/.bin**에서 바이너리 검색 -
없으면 글로벌 또는 일시적으로 원격 레지스트리에서 내려받아 실행
-
실행 후 캐시에서 제거 (설치 기록 없음)
-
-
주요 사용 사례:
-
프로젝트 생성 툴:
npx create-react-app my-app -
CLI 유틸:
npx typescript --init -
테스트/빌드 툴:
npx jest
-
언제 무엇을 써야 할까요?
-
반복적으로 사용할 패키지라면 →
npm install로 로컬/글로벌 설치 -
한 번만 실행해 볼 툴이나 프로젝트 생성 스캐폴딩은 →
npx가 편리
이렇게 쓰임새에 따라 npm과 npx를 적절히 활용하시면 됩니다.