LearningJavaScript

npm과 npx 차이

jyshimmy 2020. 10. 25. 22:49

npm: Node Package Manager

npx: Node Package eXecute

 

이름만 보면 npm은 노드 패키지를 매니지해주고 npx는 실행시켜준다는 의미를 갖고 있는것 같다.

 

하지만 리액트 CRA를 설치하며 npx create-react-app을 사용했는데, npm과 npx의 차이가 뭘까? 지금까지 패키지를 설치할 때 주로 npm을, 그리고 가끔 yarn을 수차례 써왔지만, 이제야 궁금해졌다.

 

npm

npm은 보통 전역(global)으로 패키지를 설치해 dependencies 라이브러리들을 전체적으로 관리할 때나 특정 프로젝트에 dependencies 라이브러리를 설치할 때 사용한다. 이 때 전역과 로컬에 설치된 패키지 업데이트에 문제가 생길 수 있다고 한다... 음? 만일 내가 전역과 로컬에 같은 라이브러리를 설치했다 가정했을 때를 말하는것인가...? 이 문장은 아직도 좀 이해가 안된다..

하지만 이런 번거로움을 npx라는 도구가 해결해줄 수 있다.

npx

npx는 npm 5.2.0버전부터 새로 추가된 도구로 하나하나 설치, 실행, 제거해야하는 npm과 달리 일회성으로 필요한 패키지를 npm 레지스트리에 접근해서 실행시키고 설치해준다.

 

여기서 참고:

webruden.tistory.com/275

www.geeksforgeeks.org/what-are-the-differences-between-npm-and-npx/#:~:text=Npm%20is%20a%20tool%20that,pollution%20for%20the%20long%20term.

 

 


다시 정리

 

In short,

npx를 쓰면 npm과는 달리 설치와 실행이 한 번에 가능하다.

 

터미널에 npx create-react-app 폴더이름 을 쓰면, create-react-app도 설치가 되는 동시에 내가 정의한 "폴더이름"으로 리액트 앱이 만들어지지만,

npm install create-react-app으로 create-react-app을 설치했다면, 터미널에 다시 한 번 create-react-app 폴더이름을 입력해서 원하는 리액트 앱 폴더를 만들어야한다.

 

이 이상의 설명은 조금 더 성장해서 다시 해보겠습니당~