TechFeedTechFeed
개발자 작업환경

npx 사용법 | 설치 없이 패키지 명령을 바로 실행합니다

npx는 로컬에 있으면 그 명령을, 없으면 npm 캐시에 받아 실행합니다. 설치 확인 질문을 건너뛰는 --yes, npm exec와 옵션 순서 차이를 npm 공식 문서로 확인했습니다.

by

npx는 패키지를 전역에 설치하지 않고 그 안의 명령을 바로 실행하는 도구입니다. 프로젝트 node_modules에 명령이 있으면 그것을 쓰고, 없으면 npm 캐시에 받아 실행합니다. 처음 받는 패키지라면 설치해도 되는지 묻고, 자동 실행 스크립트처럼 질문에 답할 수 없는 곳에서는 --yes나 --no를 붙여야 멈추지 않습니다. npm 7부터 npx는 npm exec를 쓰도록 다시 만들어졌고, 그 뒤로 옵션은 패키지 이름 앞에 적어야 npx가 읽습니다. 예전 블로그 글에 나오는 --no-install, --node-arg 같은 옵션도 바뀌었으니 2026년 10월 28일에 연 npm v11 공식 문서 기준으로 확인하세요.


npx 요약
하는 일
패키지 명령을 설치 없이 실행
찾는 순서
로컬 node_modules, 그다음 npm 캐시
질문 건너뛰기
--yes 또는 --no
옵션 위치
패키지 이름보다 앞

npx는 정확히 무엇을 하나요?

바로 답 | 패키지 안의 실행 파일(bin)을 찾아 실행합니다. 로컬에 없으면 npm 캐시에 내려받아 실행하고, 전역 설치는 하지 않습니다.


npm 공식 문서는 npx를 "로컬 또는 원격 npm 패키지에서 명령을 실행한다"고 정의합니다. 프로젝트 의존성에 이미 들어 있는 도구라면 node_modules/.bin에 있는 실행 파일을 쓰고, 처음 쓰는 패키지라면 npm 캐시 폴더에 받아서 PATH에 잠시 붙여 실행합니다.


그래서 create-next-app처럼 가끔 한 번 쓰는 생성 도구나, 프로젝트마다 버전이 다른 린터를 돌릴 때 npx가 편합니다. npm 문서도 전역 설치 권한 오류(EACCES)를 피하는 대안으로, 가끔 쓰는 명령이라면 npx를 검토해 보라고 적었습니다.


npx 기본 사용 예 (npm 공식 문서 형식)
# 로컬에 있으면 로컬 버전, 없으면 받아서 실행 npx eslint . # 로컬 의존성의 tap을 인자와 함께 실행 npx tap --bail test/foo.js # 패키지 이름과 실행 파일 이름이 다를 때 npx -p typescript tsc --version

"Need to install the following packages"에서 멈추면?

바로 답 | npx --yes 패키지로 확인 질문을 건너뛰거나, 설치 자체를 막으려면 --no를 붙이세요.


npm 문서에 따르면 실행하려는 패키지가 로컬 의존성에 없으면 npx는 캐시에 설치하기 전에 확인을 묻습니다. 터미널에서 직접 쓸 때는 y를 누르면 되지만, CI나 스크립트처럼 입력할 수 없는 곳에서는 여기서 멈춥니다.


옵션동작쓰는 곳
--yes, -y묻지 않고 받아서 실행CI, 자동화 스크립트
--no받아야 하면 실행하지 않고 실패로컬 의존성만 쓰게 강제할 때
옵션 없음처음 받는 패키지면 확인 질문터미널에서 직접 실행
--no-installnpm 7 이후 --no로 바뀜예전 스크립트 정리 대상

남이 만든 패키지를 --yes로 자동 실행하면 그 패키지 코드가 확인 없이 돌아갑니다. 이름을 잘못 적은 비슷한 이름의 패키지가 실행될 수도 있으니, 자동화에서는 npx 패키지@버전처럼 버전까지 고정하세요.


npx와 npm exec는 무엇이 다른가요?

바로 답 | 하는 일은 같고, 옵션을 읽는 방식이 다릅니다. npx는 패키지 이름 앞의 옵션만 읽고, npm exec는 -- 뒤를 모두 명령에 넘깁니다.


npm 문서는 npx를 실행하면 npm exec를 쓰도록 바뀌었다고 설명하며 차이를 예시로 듭니다. npx에서는 첫 번째 위치 인자 뒤에 오는 옵션이 모두 실행할 명령으로 넘어갑니다. npm exec에서는 --를 넣지 않으면 뒤쪽 옵션을 npm이 먼저 가져갑니다.


같은 결과를 내는 두 가지 쓰는 법 (npm 공식 문서 예시)
npx foo@latest bar --package=@npmcli/foo # 위와 같은 동작 npm exec -- foo@latest bar --package=@npmcli/foo # npx에서 -p는 --package의 약자 npx -p @npmcli/foo foo

npm 7 이전 npx에 있던 --node-arg, -n은 빠졌고 문서는 대신 NODE_OPTIONS 환경 변수를 쓰라고 안내합니다. 셸 대체 실행 기능(shell fallback)과 --ignore-existing, --npm 옵션도 제거되었습니다.


이런 분께 맞아요
가끔 쓰는 생성 도구
create-next-app 같은 도구는 전역 설치 없이 npx로 실행하면 됩니다.
CI에서 도구 실행
npx --yes 패키지@버전으로 질문과 버전 변동을 함께 막으세요.
npm 스크립트 작성자
package.json scripts에서는 로컬 bin이 PATH에 잡히니 npx 없이 이름만 써도 됩니다.

npx 명령이 이상하게 동작할 때 무엇을 보나요?

바로 답 | npm 버전, 로컬 node_modules에 같은 이름의 명령이 있는지, 옵션 위치 세 가지를 보면 됩니다.


npx 점검 체크리스트
  • ☑npm -v가 7 이상인가요? 예전 npx 옵션은 7부터 바뀌었습니다.
  • ☑프로젝트 node_modules/.bin에 같은 이름의 명령이 있어서 그 버전이 먼저 실행되지 않았나요?
  • ☑옵션을 패키지 이름 뒤에 적어서 npx가 아니라 실행 명령에 넘어가지 않았나요?
  • ☑CI 로그가 확인 질문에서 멈추지 않았나요? 필요하면 --yes를 붙이세요.
  • ☑윈도우 PowerShell에서 npx.ps1 실행이 막히면 실행 정책을 확인하세요.

npx, 자주 묻는 질문

npx로 받은 패키지는 어디에 저장되나요?

npm 캐시 안의 폴더에 저장되고, 실행할 때 그 폴더가 PATH에 붙습니다. 전역 node_modules에 설치되지 않으니 npm ls -g에는 나오지 않습니다.


npx는 따로 설치해야 하나요?

npm에 함께 들어 있습니다. npm 문서는 npm 5.2 이상이면 npx를 쓸 수 있다고 적고 있고, 지금 Node.js 설치 파일에 들어 있는 npm에는 기본으로 포함됩니다.


항상 최신 버전으로 실행하고 싶다면?

npx 패키지@latest처럼 태그를 붙이면 됩니다. 태그 없이 실행하면 로컬이나 캐시에 있는 버전이 쓰일 수 있습니다.


출처: npm Docs, npx (v11), npm Docs, npm exec (v11), npm Docs, Resolving EACCES permissions errors (2026년 10월 28일 확인). 관련 글: npm 업데이트 방법, Node.js 설치 방법.


npxnpm execnpmNode.js패키지 실행

함께 보면 좋은 문제 해결

EXPLORE / 개발자 작업환경

이어서 읽어보기

전체 토픽 둘러보기 →