2020. 1. 25. 23:42ㆍProgramming/JavaScript
npx
란?
저번글에서 Node.js, npm, nvm에 대하여 다시한번 정리를 해보았다.
위 원문은 요약하면, Node.js는 자바스크립트 런타임 환경, npm은 자바스크립트 코드로 Node.js 패키지 매니저, nvm은 위 Node.js의 버전 관리 도구였다.
그렇다면 npx는 무엇일까?
우선, 이 npx를 처음만났을 때로 거슬러가보자. 리액트로 프로젝트를 처음 시작할 때 create-react-app
패키지를 인스톨하기위해 npm이 아닌 npx를 사용해야했다.
npm crate-react-app my-app
npx
란
자바스크립트 패키지 관리 모듈인 npm@5.2.0 버전부터 새로 추가된 도구로, 쉽게말하면 npm으로 귀찮았던 과정들이 단순화되어 편해졌다고 볼 수 있다.
npx는 npm 레지스트리의 패키지 사용 경험을 파악하기 위한 도구이다.
npm
: 레지스트리에서 호스팅되는 종속성(dependency)을 매우 쉽게 설치하고 관리할 수 있으며npx
: 레지스트리에서 호스팅되는 CLI도구 및 기타 실행 파일을 쉽게 사용할 수 있다고 한다.
만약 npm
이었다면..
위 create-react-app을 설치하는 과정에서 npx가 아닌 npm으로 -g 설치를 하게되면 많은 문제가 생긴다. 그 중 로컬 스토리지에 있는 패키지가 새로운 버전이 나왔을 경우, 이미 존재하는 패키지를 제거하고 다시 설치해야한다는게 가장 큰 문제이다.
npx
vs npm
이 부분에서 npx는 npm과 가장 다르다.
npx는 최신버전에 해당하는 패키지를 설치하여 실행하고, 실행된 이후에 해당 패키지를 제거한다.
이 부분이 너무나도 핵심이라 강조를 조금 해보았다.
npx
를 호출하면 npm
레지스트리에서 해당 이름의 패키지가 자동으로 설치되고 → 호출된다. 그러면 호출 후에, 설치된 패키지는 존재하지 않고 프로젝트의 용량이 커지며 더러워지는 것을 막을 수 있다.
좀 더 확장하여 예를들면, 내가 어떠한 TodoApp
레포에서 npx create-react-app
을 설치하여 프로젝트를 진행하고, 이후에 다른 레포인 NoteApp
레포에서 create-react-app을 하려면 사용할 때마다 다시 설치를 진행해야한다는 것이다. 왜냐하면, 작업이 끝났을 경우 그 패키지는 -g로 설치되어있는 것이 아니라서 호출된 이후에는 설치된 패키지는 존재하기 않기 때문이다.
npx
설치
맨 처음 언급했듯, npm@5.2.0
이상을 설치하면 된다. 또는 나는 npm이 아닌 npx만 원해!! 라고 하시는 분은, 아래의 링크에서 독립 실행형 버전의 npx를 설치할 수 있다고 한다.
'Programming > JavaScript' 카테고리의 다른 글
[정보보안] nodeJS의 crypto module로 알아보는 Hash (0) | 2020.04.23 |
---|---|
node.js, nvm, npm이란 무엇인가 (0) | 2020.01.24 |
자바스크립트의 다중프로세스 아키텍처, 렌더러, DOM, 컴포지터 (0) | 2019.11.22 |
javascript URL parser구현(tokenizer, laxer, parser) (0) | 2019.11.21 |
자바스크립트의 Prototype, 객체, this (0) | 2019.11.20 |