Chrome V8 JavaScript 엔진
JavaScript 런타임
종합하자면,
Node.js는 Javascript 를 실행 시킬 수 있도록 하는 오픈소스 서버 환경이다.
로컬 컴퓨터에서 JavaScript 로 개발을 하고싶다면 Node.js 를 설치해야한다.
-> Java를 개발하기 위해 JRE(JVM) 를 설치하는 것과 같은 원리
nvm is a version manager for node.js, designed to be installed per-user,
and invoked per-shell.
Node.js
버전 관리 도구Node.js
설치 가능rvm
, rbenv
, 파이썬 - pyenv
도 같은 역할# 설치된 nvm 버전 확인
$ nvm -v
# node.js 버전 설치하기
$ nvm install 0.10
$ nvm install v0.1.2
$ nvm install v8
# 현재 사용중인 node.js 버전 확인하기
$ nvm current
$ node -v
# 현재 사용중인 버전 확인하기
$ nvm current
# node.js 설치 경로 확인하기
$ which node
# 필요없는 node 버전 삭제하기
$ nvm uninstall <version>
# 여러버전 사용해보기
$ nvm use 16
Now using node v16.9.1 (npm v7.21.1)
$ node -v
v16.9.1
$ nvm use 14
Now using node v14.18.0 (npm v6.14.15)
$ node -v
v14.18.0
$ nvm install 12
Now using node v12.22.6 (npm v6.14.5)
$ node -v
v12.22.6
💡 Node Package : Node.js 환경에서 사용가능한 모듈(라이브러리)
Language | Package Manager |
---|---|
Ruby | Gem |
PHP | Composer |
C# | NuGet |
Java | Jpm |
Python | pip |
$ npm install (in a package directory, no arguments)
package.json
npm install
로 다운 가능package-lock.json
package.json
과 같이 모듈의 버전을 관리하는 파일package.json
이 수정될 때마다 자동 생성됨차이
package.json
은 모듈의 버전을 정의할 때 '~4.16.1' 또는 '^2.16.0' 같은 version range 를 사용package-lock.json
은 정확한 버전을 명시💡 version range
버전의 이상, 미만 등을 나타낼 수 있는 방법
더 알아보기
package.json에 명확한 버전을 입력하면 package-lock.json이 필요 없지 않을까?
->
package.json
에 항상 명확한 버전을 입력한다면,
모든 개발자의 환경에서 버전 업데이트가 일어날 때마다 npm install을 해줘야한다.각자 미묘하게 다른 버전은
pacakge.json
의 version range 라는 이점을 사용해 개발하고,
버전 문제로 큰 버그가 생긴다면package-lock.json
으로 버전을 명확히 일치시켜 해결할 수 있다.->
package-lock.json
이 존재한다면,npm install
시package.json
이 아닌package-lock.json
의 버전대로 install
https://github.com/nvm-sh/nvm - nvm 공식문서
https://docs.npmjs.com/cli/v8/commands/npm-install - npm 공식문서
https://velog.io/@mayinjanuary/NVM-%EC%9D%B4%EB%9E%80-%EB%85%B8%EB%93%9CNode.js-%EB%B2%84%EC%A0%84-%EA%B4%80%EB%A6%AC%ED%95%98%EB%8A%94-%EB%B2%95 - nvm으로 node 버전 관리
https://doozi0316.tistory.com/entry/Nodejs%EB%9E%80-NPM%EC%9D%B4%EB%9E%80-NVM%EC%9D%B4%EB%9E%80 - package.json
https://programmingsummaries.tistory.com/385 - package.json
이제는 노드까지 섭렵하시는겁니까!!