웹/Nodejs

npm과 npx의 차이점

wonin 2023. 3. 14. 16:12

🟩 npm

npm은 node Pacakge Module입니다. npm 사이트에서 필요한 라이브러리를 다운받을수 있게해주는 명령어 입니다.

 

🟩 npx

npx는 새로운 패키지 관리 모듈이 아닙니다. npm을 좀 더 편하게 사용하기 위해서 npm에서 제공해주는 하나의 도구입니다.

자바스크립트 패키지 관리 모듈인 npm(Node Package Module)의 5.2.0 버전부터 새로 추가된 도구입니다.

따라서 npm@5.2.0 이상 버전만 깔려 있다면 npx 명령어를 사용할 수 있습니다.

npx 는 패키지를 임시 설치해서 "실행"하는 용도입니다!

 

예를 들어 react 와 같은 library 를 설치할 수는 있지만 실행이 안 되므로 npx로 설치가 불가능합니다.

만약 npx 로 react를 설치할거라면 create-react-app 라는 명령어로 사용해, CRA 가 알아서 react 를 설치하게 만들어야 합니다. npx 자체로는 불가능합니다

 

🟦 패키지 임시 설치 및 실행

만약 typescript가 깔려있지 않고 ts 파일만 있을 때 ts 파일을 커맨드로 실행시키고 싶다면

npx ts-node test11이란 명령어를 쳐줍니다. 

ts-node는 node가 typescript를 이해시킬 수 있는패키지 인데요. npx로 굳이 설치하지 않고도 파일을 실행시킬 수 있습니다.

ts-node가 test11.ts란 파일을 컴파일해서 js로 만든다음 node로 읽는 과정을 npx로 손쉽게 할 수 있습니다.

 

👀 동작원리는 이렇게 됩니다.

  1. 기본적으로 실행되어야할 패키지가 경로에 있는지 먼저 확인합니다. (/node_module 밑에 파일 확인)
  2. 경로에 파일이 있다면 경로 파일 실행합니다.
  3. 없다면 npx가 최신 버전의 패키지를 잠깐 설치합니다.

ts-node가 임시로 설치되고 실행까지 된 다음 사라지게 됩니다.

패키지를 다운 받았다면, node-modulus 라는 폴더가 생겨야 하는데,

npx 이후에는 마치 node 프로젝트를 방금 시작한 것처럼 package.json 만이 존재합니다.

728x90