Javascript

nodjs, npm, nvm, npx

  • -
728x90

 

nodeJS, npm, nvm, npx에 대해서 알아보자.  

 

NodeJS

확장성 있는 네트워크 어플리케이션(특히 서버 사이드) 개발에 사용되는 소프트웨어 플랫폼이다. 대부분의 Javascript가 웹 브라우저에서 실행되는 것과 달리, 서버 측에서 실행된다.  

 

Node는 Javascript의 runtime이다. 쉽게 말해, Javascript program을 실행할 수 있게 해준다.

Java 언어가 모든 OS 운영체제에서 Virtual Machine 환경 안에서 Runtime 이 구동 되듯이 Node.JS 는 웹브라우저에 종속적인 자바스크립트에서 외부에서 실행할 수 있는 Runtime 환경을 Chrome V8 엔진을 제공하여 여러 OS 환경에서 실행할 수 있는 환경을 제공하게 된다. 이것을 Node.JS 라고 정의할 수 있다.  

 

NPM

Node Pakage Manager 말그대로 Javascript 언어를 위한 패키지 관리자이다.

세상에는 많은 자바스크립트 프로그래머들이 있고, 그들이 유용한 자바스크립트 패키지들을 이미 만들어 두었고, 그런 코드들이 공개되어 있는 것이 바로 npm이다. npm은 세계 최대 규모의 패키지들을 보유하고 있다. 이러한 패키지들은 노드의 생태계를 더욱 견고하게 만들었다.

 

npm에 업로드된 노드 모듈을 패키지라고 부른다. 모듈이 다른 모듈을 사용할 수 있는 것처럼, 패키지도 다른 패키지를 사용할 수 있다. 이러한 관계를 의존 관계라고 한다.

 

NVM

Node Version Manager로서 NodeJS 버전을 관리하는 도구이다. 주로 협업을 할 때, 또는 다양한 프로젝트를 동시에 진행해야할 때 다양한 라이브러리/프레임워크/개발 툴 버전 호환 문제를 겪을 때 사용한다.

 

use 커맨드를 이용하여 Node버전을 간단하게 스위칭 해준다.

 

파이썬의 pyenv과 같은 역할을 한다.  

 

NPX

npx는 자바스크립트 패키지 관리 모듈인 npm의 5.2.0버전부터 추가된 툴이다. (새로운 패키지 매니저 개념이 아니다! )

패키지를 설치하지 않고, npm 패키지를 1회성으로 즉석 실행해볼 수 있는 도구이다.

 

npm으로 모듈을 설치 시 두가지 방안이 있다.

 

1) 전역으로 설치하여 의존성 라이브러리들이 PC에 남게 하는 것

2) 현재 프로젝트에만 개발 의존성 모듈로 설치하는 것

 

 

설치방법

 

nvm -> Node.js -> npm

 

 

nvm 설치

$ curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.2/install.sh | bash

혹은

$ wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.3/install.sh | bash

 

그 다음으로 ~/.bashrc 파일을 vim으로 실행시켜 맨 마지막에 아래를 추가한다.  

export NVM_DIR="$HOME/.nvm" [ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" # This loads nvm

 

zsh를 사용한다면 ~/.zshrc 파일을 vim으로 실행시켜 맨 마지막에 아래를 추가한다.  

 

export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"  # This loads nvm
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"  # This loads nvm bash_completion

각 코드를 적용시켜주자.

 

$ source ~/.bashrc
$ source ~/.zshrc

 

$ command -v nvm

nvm이 설치되었는지 확인하자.  

 

설치가 확인되었으면, 가장 최신의 LTS판 nodeJS를 설치하자.  

 

nvm install v12.18.0

 

 

 

위키백과 NodeJS
위키백과 NPM
https://ooeunz.tistory.com/19
https://yunzema.tistory.com/270
https://gist.github.com/d2s/372b5943bce17b964a79
https://nicedoc.io/nvm-sh/nvm
nvm이란?
728x90
300x250
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.