npm? npx?
npm Vs npx
예전부터 궁금했지만 굳이 알아볼 필요까지는 없었다가, 여드름이 터지듯 갑자기 궁금해서져 알아봤습니다.
가장 큰 차이는 설치
를 할 것인가 아닌가
- 컴퓨터에 패키지 전역으로 설치하여 실행:
npm
- 컴퓨터에 패키지 설치 없이 이번만 실행:
npx
-
npm
는 컴퓨터 전역(global)에 패키지(npm 모듈 시스템)를 설치한다는 의미입니다.만약
npm -g
와 같이 뒤에-g
가 있다면, 전역으로 설치한다는 옵션입니다.-g
옵션이 없으면 NPM 패키지는node_modules
라는 이름의 폴더 안에 저장됩니다.node_modules
폴더는npm install
을 실행한 위치와 같은 계층에 있는 폴더입니다.
-
npm 패키지를 설치하지 않고 실행만 하려면 터미널에
npx
를 입력하면 됩니다.npx는 노드 패키지 실행(Node Package Execute, NPX)의 약자로 NPM 패키지 실행자(NPM Package Runner)라고도 불립니다.
npx
가 설치되어 있는지를 확인하시려면 다음 명령어를 터미널에 입력하시면 됩니다.1
npx -v
컴퓨터에 노드 패키지를 저장하고 싶은 분들은 아래 1번 방법을, 패키지를 저장하지 않고 실행하고 싶은 분들은 2번 방법을 사용하시면 됩니다.
-
컴퓨터에 패키지 전역으로
설치
:npm
1 2
npm create-react-app my-project ...
-
컴퓨터에 패키지
설치 없이 실행
:npx
1 2
npx create-react-app my-project ...
👀
저는 react를 배우다가 npm과 npx의 차이가 문득 궁금해져서 알아본 것인데, react를 시작하는 여러 방법 중 하나인 CRA(create-react-app)는 버전 변경이 자주 발생하는 React의 Boiler Plate입니다. 보일러 틀에 여러 개의 보일러를 찍어내듯, 초기 환경을 자동으로 셋업해주는 도구라고 보면 된다. (Vue CLI 같은 개념이다.)
버전 변경이 잦다는 것은 한 버전을 글로벌하게 설치해서 사용할 경우 내가 사용하는 버전이 점점 뒤로 밀리는 후속버전이 된다는 의미.
즉 항상 최신 버전으로 프로젝트를 생성하고 싶다면, npx가 더 맞는 방법이 되는 것이다.
이렇게 사용하려는 기술의 변화와 개인의 취향을 고려하여 사용하면 더 좋을 것 같습니다.