개발환경시리즈① NPM

김수정·2020년 5월 15일
1

Node.js

Node.js는 노드 실행기입니다. 더 이상 브라우저에서만 동작하는 javascript가 아니라는 얘기죠. 이를 활용해 웹서버를 만드는 백엔드를 작업하기도 하지만 노드 기반의 프론트 관련 좋은 패키지들(webpack, gulp, typescript, sass...)이 매우 많기에 프론트엔드 개발에서 개발환경을 구성하는 데에도 사용합니다.

Node.js설치

LTS버전과 최신 버전이 있습니다. LTS는 안정적이고 신뢰도가 높은 버전으로 보통 짝수이고 배포/운영환경에서 사용합니다, 최신 버전은 개발환경에서 사용하며 보통 홀수입니다.

터미널에 node --version을 명령하여 버전명이 잘 나온다면 정상적으로 설치되었습니다.

NPM

Node Package Manage로 node가 설치될 때 같이 설치됩니다.
홈브류가 맥위에 설치되는 프로그램을 관리할 수 있는 것처럼 노드위에 설치되는 패키지들을 관리할 수 있습니다.

프로젝트 초기화 npm init

init 명령어를 사용하여 프로젝트를 만듭니다. 이제 이 프로젝트는 node기반으로 환경이 구성될 수 있습니다.

$ npm init

이후 진행은 프로젝트 관련한 정보에 대해 질문하는 형식으로 이루어집니다. 여기에 작성한 내용들을 한데 모아 package.json 을 만들어줍니다.
모두 기본값으로 빠르게 생성할 요량이라면 npm init -y명령어를 사용합니다.

package.json

Node.js는 package.json에 모든 정보를 기록합니다.

  • name: 프로젝트 이름
  • version: 프로젝트 버전 정보
  • description: 프로젝트 설명
  • main: 노드 어플리케이션일 경우 진입점 경로. 프론트엔드 프로젝트일 경우 사용하지 않는다.
  • scripts: 프로젝트 명령어를 등록할 수 있다.초기화시 test 명령어가 샘플로 등록되어 있다
  • author: 프로그램 작성자
  • license: 라이센스

script는 우리가 명령어를 커스터마이징할 수도 있습니다. 키에 명령어를 입력하고 값에 문자열로 등록하면 됩니다.
npm에서 기본적으로 제공하는 명령어는 npm <명령어>, 우리가 커스터마이징한 명령어는 npm run <명령어>로 터미널에서 실행할 수 있습니다.

{
  "scripts": {
    "order": "내가 만든 명령어"
  }
}

npm 명령들

  • npm install 써드파티 라이브러리 설치
  • npm uninstall 써드파티 라이브러리 삭제
  • npm start 어플리케이션 실행
  • npm ls -g --depth=0 전역에 설치한 패키지 리스트 확인
  • npm view <packageName> versions npm에 등록되어 있는 써드파티 라이브러리의 버전들을 전부 볼 수 있습니다.
  • rm -rf node_moduels package-lock.json 새로 npm을 설치하기 전에 기존 것을 지우는 명령어.

버전 관리

NPM은 버전을 관리하는 자신만의 규칙이 있습니다.

유의적 버전(Sementic Version)
v1.2.3이라고 한다면,
1은 주 버전(Major Version)이고 기존 버전과 호환이 되지 않게 버전 업이 된 경우에 붙입니다.
2는 부 버전(Minor Version)으로 주버전과 호환되면서 기능이 추가될 때 붙입니다.
3은 수 버전(Patch Version)으로 주버전과 호환되면서 버그를 수정한 경우에 붙입니다.

특정 버전 사용

>1.2.3
>=1.3.5
<14.3.0
<=0

틸트와 캐럿

  • 틸트(~)는 마이너 버전이 명시되어 있다면 패치 버전만 변경하고 마이너 버전이 없으면 마이너 버전을 갱신합니다.
  • 캐럿(^)은 정식버전에서 마이너와 패치 버전을 변경하고 정식버전 미만인 0.x버전은 패치만 갱신합니다.

프로젝트에서 관리하는 방법
1. package.json에 업그레이드 하고 싶은 패키지의 버전을 위 방법에 의거하여 만듦
2. node_modulespackage-lock.json을 삭제 후 다시 설치합니다.
3. 터미널에 cat node_modules/<packageName>/package.json을 작성하여 "version"항목을 확인하거나 이 명령어가 안먹히면 node_modules들어가서 package.json을 찾아봅니다.

profile
정리하는 개발자

0개의 댓글