개인공부/TIL(Today I Learned)

TIL 65일차_npm vs npx

soon327 2021. 3. 24. 02:00

모듈을 설치하고 실행하다 보면
어쩔때는 npm명령어를, 어쩔때는 npx 명령어를 쓰곤한다.

쉬운 예로,
package.json의 모듈들을 설치할 때는 npm install 을 사용하고,
리액트 CRA를 설치할 때는 npx create-react-app을 사용한다.

npx

npx는 새로운 패키지 관리 모듈이 아니다.
자바스크립트 패키지 관리 모듈인 npm의 5.2.0버전부터 추가된 도구일뿐이다!
npx는 npm을 통해 설치하는 모든 종류의 Node.js 기반의 파일들을
굉장히 간단하게 설치하고 실행할 수 있게 도와준다.

npx가 등장한 이유

npm으로 모듈을 전역에 설치하거나, 혹은 프로젝트별로 설치할 때,
패키지가 업데이트 되면 전역과 로컬에 있는 모듈들을 각각 업데이트하며 관리해야하는 번거로움이 있다.

이러한 문제를 해결할 수 있는 도구가 npx이다.
npx는 기존에 npm 설치 방법과는 다르게
일일이 설치, 실행, 제거를 할 필요 없이
일회성으로 원하는 패키지를 npm 레지스트리에 접근해서 실행시키고 설치하는 실행도구이다.

npx는 다음의 과정을 따른다.

  1. 기본적으로 실행되어야할 패키지가 경로에 있는지 먼저 확인한다.(예: 우리의 프로젝트);
  2. 경로에 제대로 있다면, 그대로 실행한다;
  3. 그렇지 않다면 패키지는 설치되어 있지 않다는 걸 의미하고, npx가 최신 버전의 패키지를 설치를 한 후에 실행한다.

만약 npx가 없다면,
우리는 로컬의 경로를 매번 실행시키거나,
package.json 의 scripts 부분에 스크립트를 정의하여 npm run script를 실행해야 할 것이다.

그러나 npx를 사용하면 이러한 번거로움없이
npx 모듈 을 입력하는 것만으로 쉽게 실행할 수 있다.

출처: 베이스캠프,
kimkyeseung.log