npx에 대해 알아보기
2 min read
npx란? (Node Package eXecute)
npm과의 관계 및 등장 배경
npm 자체는 패키지를 다운로드하고 관리하는 관리자 역할을 수행한다.
이때 패키지를 사용할 때 2가지 방법이 존재한다.
- 로컬 설치 (프로젝트 안에서)
- 글로벌 설치 (컴퓨터 전체에)
로컬 설치의 경우 설치는 하지만 명령어로 바로 실행이 불가하다. ex) gs-i18n "Hello"
실행하려면 긴 경로를 입력할 필요가 있다. ex) /node_modules/.bin/gs-i18n "Hello"
글로벌 설치는 컴퓨터 어디서든 사용이 가능하다. ex) gs-i18n "Hello"
하지만 컴퓨터 전체에 설치해서 용량을 차지하게 된다.
그리고 버전 충돌 문제, 관리자 권한 필요, 최신 버전 유지 어려움 등의 어려움이 따른다.
npx의 등장
create-react-app로 비교하면 프로젝트를 만들 때 한 번만 실행하고 싶은 경우가 있다.
왜 계속 컴퓨터에 저장해야 할까?
이와 같이 필요할 때만 실행하고 싶은 니즈로 npx가 생겨나게 되었다. ex) npx create-react-app my-app
npm 5.2.0 이후 기본 포함
처음에는 별도 패키지로 npm install -g npx 설치 필요했다. npx 패키지
이후 버전에 npx는 npm에 기본적으로 포함되면서 별도로 설치가 불필요해졌다.
즉 npm이 설치되어 있으면 npx도 자동으로 설치된다.
핵심 개념 (패키지 실행기, 일회성)
npm은 패키지 관리,npx는 패키지 실행 (Package Runner)- 일회성: 항상 최신 버전 사용, 실행이 필요한 순간에만 존재, 실행이 끝나면 흔적을 남기지 않음
npx 동작 방식
로컬 node_modules/.bin 우선 탐색

npx는 가장 먼저 현재 프로젝트의 node_modules/.bin/ 디렉토리를 확인한다.
이 폴더에는 프로젝트에 설치된 패키지의 실행 파일들이 심볼릭 링크 형태로 저장되어 있다.
글로벌 설치 확인
다음으로 시스템 전역에 설치된 패키지를 탐색한다.
$ npm list -g --depth=0
캐시 확인
로컬과 글로벌에 모두 없다면 npm 캐시를 확인한다. ~/.npm/_npx/
임시 설치 및 실행 메커니즘
캐시에도 없다면 npm registry에서 패키지를 다운로드한다.
npm registry는 JavaScript 패키지들이 저장되어 있는 거대한 온라인 창고이다.
ex) gs-i18n regsitry
npx와 다른 방법들의 차이
많이 헷갈리는 부분 간단하게 정리해보자.
npx vs npm
npm: 패키지 관리자 (Package Manager)npx: 패키지 실행기 (Package Executor)
npx vs 글로벌 설치
글로벌 설치 문 제점
- 버전 고정 → 수동으로 업데이트 필요
- 프로젝트별 버전 충돌
- 디스크 공간