5. 패키지 매니저

진영민·2022년 9월 5일
0

Node.js 교과서

목록 보기
4/13

해당 글은 Node.js 교과서의 내용을 요약, 정리한 글입니다.

npm

Node Package Manager의 약자
npm에는 125만개에 달하는 패키지가 등록되어 있다.
npm에 업로드된 노드 모듈을 패키지라고 한다. 모듈이 다른 모듈을 사용할 수 있는 것 처럼 패키지도 다른 패키지를 사용할 수 있다. 이를 의존 관계라고 한다.

packeage.json

서비스에 필요한 패키지들을 추가하다 보면 패키지 수가 많아진다. 그리고 사용할 패키지는 저마다 고유한 버전이 있으므로 어딘가에 기록해두어야 한다.
이렇게 설치한 패키지의 버전을 관리하는 파일이 package.json이다.

$npm init

을 통해 package.json을 만들 수 있다.
npm init의 설정에 대해 설명하면,

package name
//패키지의 이름

version
//패키지의 버전

entry point
//자바스크립트 실행 파일 진입점, 보통 마지막으로 module.exports를 하는 파일을 지정한다.
//package.json의 amin 속성에 저장된다.

test command
//코드를 테스트할 때 입력할 명령어

git repository
//코드를 저장해둔 깃 저장소 주소를 의미한다.

keywords
//npm공식 홈페이지에서 패키지를 쉽게 찾을 수 있게 한다.

license
//해당 패키지의 라이선스
$npm install express

이를 이용하여 express를 쉽게 설치할 수 있다.

$npm install --save-dev nodemon

이를 이용하여 실제 배포 시에는 사용되지 않고 개발 시에만 사용하는 패키지를 만들 수 있다.
nodemon은 소스 코드가 바뀔 때마다 자동으로 노드를 재실행시켜주는 패키지이다.

$npm install --global rimraf

이는 packages.json말고 global에 설치되는 명령어이다.
전역 설치한 패키지는 콘솔의 명령어로 사용할 수 있다. 대부분은 명령어로 사용하기 위해 전역 설치한다.
rimraf는 rm -rf명령어를 윈도우에서도 사용하게 해 주는 모듈이다.

패키지 버전

노드 패키지들의 버전은 항상 세 자리이다.
이는 SemVer방식을 따르기 때문이다.
SemVer는 Semantic Versioning의 약자로, 버전을 구성하는 세 자리가 모두 의미를 갖고 있다는 뜻이다.

첫 번째 자리는 major 버전이다. 0이면 초기 개발 중이라는 뜻이며, 1부터 정식 버전을 의미한다.
major는 하위 호환이 안 될 정도로 패키지의 내용이 수정 되었을 때 올린다.

두 번째 자리는 minor 버전이다. minor버전은 하위 호환이 되는 기능 업데이트를 할 때 올린다.
버전을 1.5.0에서 1.6.0으로 올렸다면 사용자가 아무 문제가 없어야 한다.

세 번째 자리는 patch 버전이다. 새로운 기능보다는 기존 기능에 문제가 있어 수정한 것을 내놓았을때 patch버전을 올린다.

$npm i express@^1.1.1

이라면 1.1.1이상부터 2.0.0미만 버전까지 설치된다.
@latest는 안정된 최신 버전을 의미한다. x로도 표시한다.

기타 명령어

$npm outdated
//업데이트 할 수 있는 패키지가 있는지 확인한다.

$npm update [패키지명]
//업데이트

$npm uninstall [패키지명]
//해당 패키지를 제거하는 명령어

$npm search [검색어]
//패키지를 검색하는 방법, keyword가 이때 사용된다.

$npm info [패키지명]
//패키지의 세부 정보 파악

$npm adduser
//npm 로그인을 위한 명령어

$npm whoami
//로그인한 사용자가 누구인지 알려준다.

$npm logout
//로그인한 계정을 로그아웃할때 사용

$npm version [버전]
//package.json의 버전을 올린다. 원하는 숫자를 넣으면 된다.

$npm deprecate [패키지명] [버전] [메시지]
//해당 패키지를 설치할 때 경고 메시지를 띄우게 하는 명령어

$npm publish
//자신이 만든 패키지를 배포할 때 사용

$npm unpublish
//배포한 패키지를 제거할 때 사용

$npm ci
//package.json대신 package-lock.json에 기반하여 패키지를 설치한다. 더 엄격하게 버전을 통제하여 패키지를 설치하고 싶을 때 사용한다.

패키지 배포

npm 웹 사이트에서 회원가입을 한다.
콘솔에서 npm adduser명령어로 로그인한다.
npm publish를 이용하여 배포한다.

profile
코린이

0개의 댓글