서버/Node

NodeJS NPM semver package.json

realtrynna 2022. 1. 19. 10:16

NodeJS NPM semver package.json

노드 패키지 관리 매니저

- 다른 사람들이 만든 소스 코드들을 모아둔 저장소

- 남의 코드를 사용하여 개발 가능

- 이미 있는 기능을 다시 구현할 필요가 없어 효율적

- 오픈 소스 생태계를 구성중

- 패키지는 NPM에 업로드된 node 모듈

- 패키지도 다른 패키지 사용 가능 의존 관계라고 부름

 

- 명렁어
npm start : package.json "start" 속성 실행  
npm ls : 현재 프로젝트에 어떤 패키지가 사용되고 있는지 확인
npm outdated : 어떤 패키지에 기능 변화가 생겼는지 알 수 있음 
npm uninstall 패키지명 : 패키지 삭제(npm rm 패키지명으로도 가능)
npm search 검색어 : npm 패키지 검색(npmjs.com에서도 가능)
npm info 패키지명 : 패키지의 세부 정보 파악 가능
npm adduser : npm에 로그인을 하기 위한 명령어(npmjs.com 회원가입)
npm whoami : 현재 사용자가 누구인지 알려줌
npm logout : 로그인한 계정 로그아웃
npm version : 버전 package.json의 버전을 올림
npm update : package.json에 따라 업데이트
npm deprecate 패키지명 버전 메세지 : 패키지 설치 시 경고 메세지 보냄(오류 패키지에 적용)
npm publish : 자신이 만든 패키지를 배포
npm unpublish : 자신이 만든 패키지 배포 중단(배포 후 72시간 내에만 가능)

 

semver

concept : 패키지의 버전을 3자리로 만드는 방식(유의적 버전)

- Major(주 버전) Minor(부 버전) Patch(수 버전)

- node 배포 시 항상 버전을 올려야 함

- Major는 하위 버전과 호환되지 않은 수정 사항이 생길 시 올림

- Minor는 하위 버전과 호환되는 수정 사항이 생길 시 올림

- Patch는 기능에 버그를 해결 시 올림

  • ^4.17.1 : ^은 Major를 고정(Minor Patch는 신경 안씀)
  • 보통 처음(Major자리만 고정)
  • @latest : 가장 최신 (npm i express@latest) 원하는 버전(npm i express@3.5.1)
  • @next : npm에는 없지만 가장 최신 배포판 사용 가능(불안정함)

 

package.json

concept : 현재 프로젝트에 대한 정보와 사용 중인 패키지에 대한 정보를 담은 파일

- 같은 패키지라도 버전별로 기능이 다를 수 있으므로 버전을 기록해두어야 함

- 동일한 버전을 설치하지 않으면 문제가 생길 수 있음

- 노드 프로젝트 시작 전 package.json 생성(npm init)

 

- package.json 구조
package name : 패키지 이름(name 속성에 저장)
description : 패키지 설명
entry point : js 실행 파일의 진입점 보통 마지막으로 module.exports하는 파일 지정(main 속성에 저장)
test command : 코드 테스트할 시 입력할 명령어
git repositroy : 코드 저장해둔 Git 저장소 주소(repository 속성에 저장)
keywords : npm 공식 홈페이지에 패키지를 쉽게 찾을 수 있도록 해줌(keywords 속성에 저장)
author : 내 아이디
license : 보통 MIT(오픈 소스)

'서버 > Node' 카테고리의 다른 글

NodeJS axios cheerio xlsx  (0) 2022.04.18
NodeJS dotenv  (0) 2022.01.20
NodeJS fs  (0) 2022.01.18
NodeJS exception 예외 처리  (0) 2022.01.18
NodeJS process  (0) 2022.01.18