[JS] JavaScript 런타임 & NVM , NPM, package.json 이해하기

Fleuve·2020년 10월 19일
0
post-thumbnail

1. 런타임이란?

런타임은 프로그래밍 언어가 구동되는 환경이다. 쉽게 말해 "어떤 프로그래밍 언어가 동작할 수 있는 프로그램"을 말한다.

  • JavaScript의 런타임

    브라우저는 JavaScript의 대표적인 런타임이다. 이전에는 JavaScript 런타임은 브라우저 밖에 없었지만 node.js라는 새로운 런타임이 나오면서 브라우저가 아닌 곳에서 실행할 수 있게 되었다.

2. NVM

Node Version Manager의 약자로 NVM을 통해 node를 설치하고, 다양한 node version을 손 쉽게 옮겨 다닐수 있다.
즉, 다양한 node version을 설치하고 관리할 수 있는 프로그램이다.

  • NVM 설치 방법(macOS 및 Linux(ubuntu))

 $ touch ~/.bash_profile
 $ curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.3/install.sh | bash

설치 후 버전 확인을 통해 제대로 설치 되었는지 확인한다.

$ nvm --version

버전이 잘 나온다면 성공적으로 NVM이 설치된 것이다.

  • node.js 설치

    NVM을 이용햬 node.js를 설치할 수 있다.
  1. 최신 버전 설치 : $ nvm install node
  2. 특정 버전 설치 : $ nvm install 12.18.3
  3. LTS 버전 설치 : $ nvm install lts

node도 버전 확인을 통해 제대로 설치 되었는지 확인한다.

$ node -v

버전이 정상적으로 출력되었다면 node가 설치된 것이다.

$ nvm use [node version]를 통해 손 쉽게 node.js의 버전을 바꿀 수 있다.

NPM

NPM(Node Package Manager)는 필요한 모듈을 다운로드할 수 있는, 모듈들이 모여있는 모듈 스토어이다. 일종의 앱 스토어역할을 한다.

package.json

제품을 설명하는 카달로그와 같은 역할로서 이 프로그램을 실행시키기 위해 필요한 모듈들이 무엇인지, 프로그램을 실행시키는 방법, 프로그램을 테스트하는 방법 등이 명시되어 있다.

  • package.json 파헤치기

  1. dependencies
    이 프로젝트가 돌아가기위해 반드시 필요한 모듈들이 무엇인가 적혀 있다.
"dependencies" : {
  "react": ^16.8.6",
  1. devDependencies
    이 프로젝트를 개발하는 환경에서 필요한 모듈들이 무엇인지가 적혀있다.
    예를 들어 lint나 테스팅 모듈처럼, 실제 프로젝트 동작에 직접적으로 영향을 주지 않는 모듈들을 명시한다.
"devDependencies": {
  "eslint": "^2.0.0",
   "jest": ^2.3.0",
}
  1. scripts
    npm으로 실행시킬 수 있는 명령어를 정의한다.
    예를 들어 npm start와 같은 명령어를 통해 언떤 동작을 해야하는 지를 적는다.
"script": {
  "test": "node test.js",
   "start": "node index.js",

0개의 댓글