Node.js란?
Node.js는 Chrome V8 JavaScript 엔진으로 빌드된 JavsScript 런타임이다. 쉽게 풀어서 Chrom V8 기반 환경에서 동작하는 JavaScript환경이라는 뜻이다.
웹 브라우저는 HTML, CSS, JavaScript로 동작하여야 하지만 이러한 언어들만으로 언어를 작성하는 것은 비효율적이다. Node.js에서 여러가지 프레임 워크들의 도움을 받아 작성한 후 웹브라우저에서는 HTML, CSS, JavaScript로 변환하여 동작하도록 도와준다.
Node Version Manager
Node Version Manager, 또는 NVM이라고 불리는 이 도구는 Node.js의 버전을 관리해주는 도구이다.
실제로는 웹 브라우저가 하나의 버전이 아니라 여러 도구와 도구마다 다른 버전으로 동작하기 때문에 우리는 여러가지 환경이 필요 할 수 있다.
NVM사용하기
설 명 | 명 령 어 |
환경 설치 | nvm install 12.14.1 |
환경 리스트 | nvm ls |
환경 사용 | nvm use 12.14.1 |
현재 노드 버전 | node |
환경 삭제 | nvm uninstall 12.21.0 |
Node Package Manager
Node Package Manager, 또는 NPM이라는 불리는 도구는 다양한 모듈이나 패키지를 손쉽게 관리 할 수 있다.
브러우저 환경(NVM)내부에는 여러가지 패키지와 모듈이 존재 할 수 있고 이 환경을 쉽게 제어하도록 도와주는 도구이다.
npm내에는 여러가지 패키지들이 존재한다. 이런 패키지들이 npm내부에 존재하고 간단한 명령어 만으로 설치할 수 있다.
또, 버전도 쉽게 바꿀 수 있어 효율성이 증대되고 관리에 용이해진다.
npm사용하기
설 명 | 명 령 어 |
패키지 환경 초기화 | npm init -y |
패키지 설치 | npm install 패키지명 ( -D ) |
package.json에 존재하는 모듈을 설치 | npm i, npm install |
scripts 정의 명령 실행 | npm run dev |
패키지 정보 | npm info 패키지명 |
패키지 버전 변경 | npm install 패키지명@버전 |
패키지 최신버전 update | npm update 패키지명 |
package.json과 package-lock.json의 차이
nvm을 초기화하게 되면 package.json이 자동으로 생성되고 npm으로 패키지를 설치하게 되면 package-lock.json이 자동으로 생성된다.
2개의 파일은 어떤 차이점이 존재할까?
package.json파일 내부에는 직접 명령어(npm install 패키지명 ( -D ))로 설치한 패키지명이 존재하고, package-lock.json은 패키지가 의존하고 있는 다른 패키지명들과 버전들이 나열되어 있다. 모듈들이 삭제되더라고 package.json을 통해 재설치(npm i)를 할 수 있다.
package.json내부 살펴보기
devDependencies와 dependencies
-D 옵션으로 설치한 패키지는 "devDependencies"에 키에 속해있고, 아닌 패키지는 "dependencies"에 있다. 무슨 차이가 있을까? "devDependencies"에 있는 패키지들은 실제 웹상에서는 사용되지 않지만 개발에 도움을 주는 패키지들을 의미하고, "dependencies"실제로 웹 상에서 사용 할 수 있는 패키지를 의미한다.
scripts
오른쪽 그림과 같이 이름(dev)과 내용(parcel index.html)를 적어 놓으면 npm run dev로 명령어를 간편하게 실행 할 수 있다.
main과 name
main은 외부 패키지에서 import할 때 사용될 javascript를 지정하고, name은 외부에서 패키지를 불러올 때 사용할 이름을 정의한다.
패키지 버전
package.json에 보이는 버전을 npm명령어를 통해 관리 할 수 있다. npm update를 한다면 최신버전으로 업데이트를 할 수 있는데 앞에 캐럿(^)표시가 없다면 최신버전으로 업데이트 되지 않는다. 반면 캐럿(^)이 있다면 최신버전으로 자동으로 업데이트 해준다.
GIT을 통해 버전관리 하기.
위에서 package.json과 package-lock.json에 우리가 어떤 버전을 사용하는지 확인하고 어떻게 설치하는지 알아보았다. 그렇다면 모든 패키지를 GIT에 올릴 필요가 있을까? 올린다면 효율성이 떨어지고 너무 많은 저장공간을 차지하게 될 것이다.
.gitignore를 통해 제외할 폴더 및 파일 지정하여 git저장소에 업로드 할 수 있다.
댓글