npx 란

Tony·2022년 3월 26일
1

node.js

목록 보기
7/13

공식문서 또는 블로그 등을 보며 npx를 잘 모른채 사용해왔다
오늘 lint-staged를 세팅하는데도 사용했지만 잘 이해가 되지 않았는데
npx에 대해 알아보니 이해가 되었다

npx는 패키지를 한번 실행하는 것이다.

  • npm을 execute한다

실행 하려는 찾아서 실행한다

  • 로컬 -> 글로벌 -> npm(remote)
  • 로컬에 있으면 로컬에 있는 것을 실행
  • 글로벌하게 있으면 글로벌에 있는 것을 실행
  • 내 컴퓨터(로컬 또는 글로벌)에 없다면 원격 npm에서 찾아서 실행 후 삭제

npx는 자주 사용하지 않는 패키지를 한번 사용할 때 좋다
npx로 실행하는 경우 로컬에 설치하지 않고 원격에 있는 최신 패키지를 실행할 수 있기 때문이다.
그리고 npx로 실행된 패키지는 실행하기 위해 설치되었다가 실행 후 삭제된다

이전 포스트(lint-staged 관련 포스트) 를 다시 살펴보자

npx mrm lint-staged

  • mrm 패키지(CLI로 추정)의 lint-staged를 실행한다

  • mrm 패키지는 로컬에 없기 때문에 설치 후 mrm lint-staged를 실행시킨 후에 mrm패키지는 삭제된다

  • 위 명령어를 입력할 때 마다 항상 최신 mrm 패키지를 사용할 수 있다(로컬에 설치되어 있지 않다면)

  • mrm 패키지의 lint-staged 명령어는 lint-staged 환경을 구성하는 것으로 추측된다

    • 이때 devDependencies로 husky와 lint-staged 설치되고 husky의 pre-commit에 lint-staged 관련 명령어까지 자동으로 세팅된다
    • 내가 해야되는 것은 next.js에 맞게 pre-commit에 있는 명령 스크립트를 npm run lint로 바꿔줘야하는 것 뿐이다

다른 사용 예시

npx create-react-app [패키지-이름]

사실 npx는 create-react-app 같은 설치 명령어를 통해 많이 사용해봤다
이것을 다시 풀어서 해석해보면

  • create-react-app은 로컬에도 없고 글로벌로 설치하지도 않았기 때문에 원격에서 찾는다
    실행을 위해 다운로드 한다. 이때 최신버전으로 다운 받아지기 때문에 설치하지 않은 패키지를 npx로 실행하면 항상 최신버전으로 실행될 것이 보장된다
  • 다운로드가 되고 실행을 한다.
    • 패키지-이름이란 react프로젝트가 세팅이 된다
  • 명령어 실행이 종료되면 create-react-app패키지는 다시 삭제된다

참고

profile
움직이는 만큼 행복해진다

0개의 댓글