[Node.js] node.js 시작하기 - nvm / npm / package.json / dependencies vs. devDependencies

김뀨뀨·2022년 7월 6일
0

Node.js

목록 보기
1/3
post-thumbnail

Node.js

☀️ 라이트 모드로 읽어주세요!

node.js는 javascript의 runtime 이다.

💡 runtime이란?

  • 프로그램이 실행될 때, 그 프로그램이 동작하는 곳이다.

기존의 Javascript 런타임은 크롬, 사파리 같은 웹 브라우저였다.
그런데 Node.js의 등장으로 웹 브라우저가 아닌 곳에서도 Javascript를 실행할 수 있게 된 것이다.


node.js를 설치하면 터미널에서도 javascript 파일을 실행하고 작성할 수 있다!

nvm(Node Version Manager)

nvm은 node.js 다양한 버전을 쉽게 설치하고 사용할 수 있게 해준다.

현재 node.js의 버전을 확인

node -v

설치되어 있는 모든 node.js 버전 확인하기

nvm ls

특정 버전의 node.js 설치하기

nvm install 12.18.3(버전 정보)

사용 중인 node.js 버전을 다른 버전으로 변경

nvm use 14.15.5(버전 정보)

npm(Node Package Manager)

npm은 프로그램에 필요한 모듈을 다운로드 할 수 있게 해준다.
node.js의 패키지 매니저이다.

💡 패키지란?

  • 여러 파일을 모아 하나의 파일로 저장하는 압축 파일이다.
    프로그램 파일, 프로그램 설치 파일, 프로그램 설치 설명서, 프로그램에 대한 정보를 담은 파일들이 담겨있다.

💡 패키지 매니저란?

  • 패키지의 설치, 변경, 삭제 등 관리를 편리하게 해주는 도구이다.
    ex) 맥의 패키지 매니저로는 많이 사용하는 🍺homebrew 가 있다.

이렇게 npm을 사용함으로써,

  • node.js 환경에서 외부 라이브러리를 다운로드 할 수 있다!

package.json

npm을 활용하기 위해서는 package.json 파일이 필요하다.

💡 package.json

  • 프로젝트(패키지) 전반에 관한 정보를 갖고 있다.
  • npm은 package.json에서 필요한 모듈들이 무엇인지 확인하고 다운로드한다.

💡 package.json을 쓰는 이유

  • package.json에는 해당 프로그램을 개발/실행하기 위해 필요한 모듈들이 '무엇인지'가 적혀있다.
    따라서 다른 사용자가 프로그램을 실행하려고 할 때, package.json 파일만 넘겨준다면 넘겨 받은 사용자는 해당 모듈을을 다운로드 하면 된다. 즉, 모듈들의 파일 전체를 넘겨줄 필요가 없다!

npm으로 모듈 다운로드 하기

npm install
//주의: 해당 디렉토리에 package.json 파일이 있어야함. 

package.json 파일이 존재하는 디렉토리에서 npm install을 실행하면
→ package.json의 모듈들이 설치된다.

📌 이 때, 모듈들은 node_modules라는 폴더가 만들어지고 이곳에 다운로드 된다.

devDependencies vs. dependencies

위에서 필요한 모듈들이 적혀있다고 한 package.json 파일의 일부다.
'devDependencies'라는 항목이 있다.

devDependencies

  • 프로그램 구동을 위해 필요한 모듈들 중 실제 코드에는 포함되지 않고, 개발 단계에서만 필요한 의존성 파일(dependency)들을 포함하는 항목이다.
  • 실제 프로젝트 동작에는 직접적으로 영향을 주지 않는다.

dependencies

  • devDependencies와는 다르게 실제 코드에도 포함되고, 프로그램 실행을 위해 필요한 의존성 파일들이다.

📌 우리가 어떤 프로그램을 개발하고 있다고 해보자. 이 때, 개발 도중 특정 패키지가 필요하면 npm을 통해 설치할 것이다.

npm install 옵션

npm install (pacakge name) --save-prod
npm install (package name) -P // 기본 옵션
npm install (package name)

위 세가지 npm install 옵션은 해당 패키지를 설치하고 프로그램의 dependencies 에 추가한다. package.json 파일의 dependencies 항목에 추가 될것이다.

그런데 만약에 내가 만들고 있는 프로그램에 개발 중에는 특정 패키지가 필요하지만, 사용자가 실제로 프로그램을 사용할 때는 필요가 없을 경우에는

npm install (package name) --save-dev
npm install (package name) -D

위 명령어로 설치하면 된다. 위 옵션은 패키지를 설치하고 패키지를 devDependenvies 에 추가한다.


📌 이번에는 반대로 어떤 프로그램을 다운 받아 프로그램을 실행하기 위해 필요한 모듈들을 다운받으려고 한다.

기본적으로는

npm install

명령어로 package.json에 있는 모든 의존성 파일(dependencies + devDependencies)을 설치할 수 있다.

그런데 실행에 필요하지 않은 devDependencies 항목들은 굳이 설치할 필요가 없다. 이 때는

npm install -production

위 명령어로 devDependencies를 제외한 의존성 파일만을 내려받을 수 있다.

또 다른 경우로는

npm install (package name) -g
npm install (package name) --global

위 명령어를 통해 시스템 폴더에 패키지를 설치할 수 있다. (의존성 목록에는 추가되지 않는다.)

+)

npm root -g //시스템의 node_modules 폴더가 어디에 있는지 보여준다. 
profile
개발로 밥벌이 하고 싶은 사람

0개의 댓글