Node.js는 Chorme V8 JavaScript 엔진으로 빌드 된 JavaScript 런타임이다.
Node Version Manager
개발을 하다보면 다양한 버전의 Node.js 환경이 필요할 때가 있다.
NVM을 이용하면 필요할 때 바로 Node.js의 버전 체인지를 진행할 수 있다.
$ curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.38.0/install.sh | bash
$ nvm --version
여러 버전의 Node.js를 미리 설치해둘 수 있다.
$ nvm install 버전
을 입력하여 원하는 버전 설치
$ nvm ls
를 입력하여 현재 설치된 버전 목록을 확인할 수 있다.
$ nvm uninstall 버전
을 입력하여 필요 없는 버전을 삭제할 수 있다. 현재 활성화 된 버전은 삭제할 수 없다.
설치해 둔 여러 버전들 중 사용할 버전을 선택하여 활성화가 가능하다.
$ nvm use 버전
을 통해 입력한 버전을 활성화한다.
$ node --version
을 입력하여 원하는 버전이 설치되었는지 확인한다.
Node Package Manager
NPM은 전 세계의 개발자들이 배포함 다양한 패키지와 모듈을 쉽게 설치하고 관리할 수 있도록 도와준다.
NPM은 NVM을 설치할 때 함께 설치된다.
NPM의 도움을 받으면 프로젝트에 필요한 패키지들의 관리가 용이하다는 장점이 있다.
NPM은 필요한 프로젝트마다 각각 활성화를 시켜주어야 한다.
터미널에서 NPM을 사용할 프로젝트 폴더를 연다.
$ npm init -y
를 입력하여 NPM을 이용한 프로젝트의 패키지 관리를 시작한다.
프로젝트 경로에 package.json 파일이 생성되었는지 확인한다.
이 파일은 프로젝트에 대한 정보를 담고 있으며, 필요에 따라 내용의 수정이 가능하다.
$ npm install 패키지명 [-D] [-g]
를 입력하여 필요한 패키지를 설치한다. 이 때, 설치한 패키지에 선행 패키지가 있는 경우 함께 자동으로 설치된다.
명령어에 -D
플래그가 붙는 경우가 있는데, 후술.
명령어에 -g
플래그를 붙이면 현재 프로젝트가 아닌 글로벌, 즉 현재 pc 환경 어디서든 접근이 가능하도록 설치하는 것을 의미한다.
$ npm install 패키지명@버전 [-D]
를 입력하여 패키지의 버전을 지정하여 설치할 수 있다.
$ npm update 패키지명
을 입력하여 최신 버전으로 업데이트도 가능하다.
$ npm info 패키지명
을 입력하여 패키지의 정보를 확인한다.
프로젝트 경로에 node_modules 폴더가 생성되었는지 확인한다.
이 폴더는 최초 패키지 설치 시 생성되며, 설치한 패키지들이 저장되는 폴더이다.
패키지 설치 후 package.json 파일을 확인해보면 devDependencies
혹은 dependencies
라는 이름으로 설치한 패키지들의 이름과 버전이 작성된 것을 볼 수 있다.
NPM은 node_modules 폴더가 삭제되어도 이 목록을 바탕으로 패키지들을 다시 설치하여 복구해준다.
- package-lock.json 파일이 생성되는 경우가 있다.
이 파일에는 선행 패키지에 대한 정보가 저장되고 관리된다.
자동으로 관리되는 부분이기 때문에 딱히 건드릴게 없다.
node_modules 폴더는 지워져도 $ npm install
을 통해 복구가 가능하지만, package.json과 package-lock.json을 바탕으로 복구하기 때문에 이 두 파일은 지워지지 않도록 주의해야 한다.
-D
플래그의 역할-D
가 붙을 경우 개발용 의존성 패키지의 설치를 의미하고,
붙지 않을 경우 일반 의존성 패키지의 설치를 의미한다.
개발 의존성 패키지는 sass와 BABEL과 같이 개발 단계에서만 필요한 패키지를 말한다.
일반 의존성 패키지는 lodash와 gsap과 같이 실제 페이지의 동작에 필요한 패키지를 말한다.
개발 의존성 패키지는 package.json의 devDependencies
,
일반 의존성 패키지는 dependencies
에 작성된다.
설치한 패키지의 명령어를 실행하고 싶다면 NPM의 도움을 받아야 한다.
"scripts"
부분에 필요한 명령어들을 추가한다."호출명": "명령어"
쌍으로 작성한다. // 예시
"scripts" : {
"dev": "parcel index.html"
}
$ npm run 호출명
을 입력하여 해당 명령어를 실행한다.$ node 파일명
으로 브라우저 없이 VS code의 터미널에서 JS 파일을 실행할 수 있다.