
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 |