유명한 담벼락

nvm과 npm 그리고 npx의 차이

by 담담이담

nvm이란?

Node Version Manager로 nodejs의 다양한 버전을 관리하는 프로그램이다.

  • nvm을 쓰는 이유
    • 여러 개의 프로젝트를 하는 경우에 서로 다른 node version을 사용할 필요가 있을 수 있다.
    • 프로젝트 폴더 상단에 .nvmrc 파일을 만들어 노드 버전을 명시해주면 nvm use라는 커맨드를 이용해 손쉽게 해당 node 버전을 이용할 수 있다. 
    • 방법은 다음과 같다.

                1)  프로젝트의 루트 디렉토리에 .nvmrc 파일을 생성한다.

    •  
mkdir .nvmrc

               2) nvmrc 파일에 해당 프로젝트에서 사용하는 노드 버전을 작성한다. (v는 생략 가능)

// .nvmrc 
v12.16.3

 

  •       3) 이제 해당 프로젝트를 clone 받은 작업자는 아래 명령어만 입력하면 해당 노드 버전을 사용할 수 있다.
nvm install // 만약 본인의 nvm에 해당 버전이 없다면 실행 
nvm use // 필수 실행

npm이란?

npm 패키지들을 쉽게 설치, 업데이트, 삭제 해주는 프로그램

  • https://www.npmjs.com/ (npm으로 설치할 수 있는 프로그램에 대한 정보가 담겨있는 웹사이트)

npm을 이용해서 설치한 패키지들에 대한 정보가 package.json에 담겨있다.

  • package.json이란?
    • 프로젝트의 정보와 의존성을 관리하는 파일
    • 어떤 패키지을 어떤 버전으로 사용하는지 알 수 있음
    • 프로젝트 이름, 버전, 사용하는 라이브러리 의존성을 명시하고 관리 가능
      node를 설치하면 npm도 같이 설치된다.
    • node란, 브라우저 밖에서 JS를 실행할 수 있게 해주는 JS 실행 환경을 의미한다.

 

npx란?

npm 5.2.0부터 새로 도입된 도구
특정한 패키지를 실행하는 용도

npm은 특정 패키지를 실행할 수는 없다.
npx는 이미 있는 패키지를 실행하거나, 현재 없는 패키지를 임시로 설치해서 실행이 가능하다.
하지만, npx를 이용해서 없는 패키지를 설치하는 것은 불가능하다.

 

yarn이란?

yarn은 npm의 단점인 속도, 안정성, 보안성을 개선한 패키지 매니저

  • 속도(perfomance)

yarn은 다운받은 패키지 데이터를 캐시(cache)에 저장하여, 중복된 데이터는 다운로드하지않고,
캐시에 저장된 파일을 활용하여 npm에 비해 패키지 설치속도가 매우 빠르다.
그리고 여러개의 패키지를 설치할 때 병렬로 처리하기 때문에 performance와 speed가 증가한다. (npm은 순차적)

  • 안정성(stability)과 보안성(security)

npm은 패키지가 설치될 때 자동으로 코드와 의존성을 실행할 수 있도록 허용하여 편리하기도 하지만 안정성을 위협할 수 있다는 단점이 있다.
특히 보장된 정책 없이 등록한 패키지가 존재할 수 있다는 점에서 더욱 위험도가 높다고 한다.
반면 yarn은 yarn.lock이나 package.json으로부터 설치만 하며,
yarn.lock은 모든 디바이스에 같은 패키지를 설치하는 것을 보장하기 때문에 버전의 차이로 인해 생기는 버그를 방지해줄 수 있다.

 

react 둘 다 사용해본 결과

npm보다 yarn이 더 다각적인,, 에러가 발생했다. 그래서 개인적으로는 npm을 더 선호한다.

블로그의 정보

유명한 담벼락

담담이담

활동하기