티스토리 뷰
5장 패키지 매니저
📌 npm
→ Node Package Manager (Package를 Library라고 생각하면 쉬움)
→ 대부분의 자바스크립트 프로그램은 패키지라는 이름으로 npm에 등록
📌 package.jsom
→ 설치한 패키지의 버전을 관리하는 파일
→ 노드 프로젝트를 시작하기 전에는 폴더 내부에 무조건 package.json부터 만들고 시작!
npm init
packge name : 패키지 이름 (프로젝트 이름)
version : 패키지의 버전 (ex.1.0.0)
description : (프로젝트 설명)
entry point : 자바스크립트 실행 파일 진입점
test command : 코드를 테스트할 때 이력할 명령어
git repository : 코드를 저장해둔 깃(Git) 저장소 주소
keywords : npm 공식 홈페이지에서 패키지를 쉽게 찾을 수 있도록 해줌
author : (내 이름)
license : 해당 패키지의 라이선스
* 상용 프로그램을 개발할 때는 내가 설치할 패키지의 라이선스를 잘 확인하는 게 중요!
* scripts 속성에 npm 명령어를 저장해둘 수 있음
{
...
"script" : {
"test" : "echo \"Error: no test specified\" && exit 1"
"start" : "nodemon app"
},
...
}
// npm (run) start를 하면 app.js를 nodemon으로 실행한다는 뜻!
→ 설치한 패키지는 package.json의 dependencies 속성에서 확인
→ 개발용 패키지는 package.json의 devDependencies 속성에는 확인
→ node-modules라는 폴더에는 설치한 패키지들이 존재 (node-modules를 삭제하더라도 'npm install' 명령어로 다시 설치 가능! 따라서 깃에도 이 폴더를 커밋하지 않음)
→ package-lock 파일에는 직접 설치한 패키지 외에도 node_modules에 들어있는 패키지들의 정확한 버전과 의존 관계가 있음
// packge.json이 존재하는 폴더의 콘솔에서 명령어 입력!
npm install [패키지] [...] // 패키지 설치 (npm i [...])
npm install --global [패키지] // 전역 설치 (npm i -g [...])
npm install --save-dev [패키지] [...] // 개발용 패키지 설치 (npm i -D [...])
npm install [저장소 주소] // npm에 등록되지 않은 패키지 설치
* 전역 설치를 하고 싶을 때는 개발용으로 패키지를 설치하고 명령어 앞에 npx를 붙여주면 전역처럼(명령어로) 사용가능 (버전 관리 용의)
* Package 추천
- nodemon : 소스 코드가 바뀔 때마다 자동으로 노드를 재실행해주는 패키지
- rimraf : 리눅스나 맥의 rm -rf 명령어를 윈도에서도 사용할 수 있게 해주는 패키지
📌 패키지 버전
→ 노드의 패키지는 SemVer 방식의 버전 넘버링을 따름 (버전을 구성하는 세 자리가 모두 의미를 가짐)
→ 첫 번째 자리는 major 버전(0이면 초기 개발 중, 1부터 정식 버전)으로 하위 호환이 안 될 정도로 패키지의 내용이 수정되었을 때 올림
→ 두 번째 자리는 minor 번전으로 하위 호환이 되는 기능 업데이트를 할 때 올림
→ 세 번째 자리는 patch 버전으로 기존 기능에 문제가 있어 수정한 것을 내놓았을 때 올림
→ 버전 앞에 기호(^,~,>,< ...)가 붙을 수 있음 (설치하거나 업데이트할 때 어떤 버전을 설치해야 하는지 알려줌)
📌 기타 npm 명령어
npm outdated // 업데이트할 수 있는 패키지 확인 (Current와 Wanted가 다르면 업데이트를 해야됨)
npm update [패키지] // 패키지 업데이트
npm uninstall [패키지] // 패키지가 node_modules와 package.jsom에서 사라짐 (npm rm [패키지])
npm search [검색어] // npm 패키지 검색(윈도나 맥은 브라우저로 가능)
npm info [패키지] // 패키지의 세부 정보
npm adduser // npm 로그인을 위한 명령어
npm logout
npm version [버전] // packge.json의 버전을 [버전]으로 올림 (npm version minor로 해당 부분을 1올릴 수 있음)
npm deprecate [패키지] [버전] [메시지] // 해당 패키지를 설치할 때 경고 메시지를 띄움
npm publish // 자신이 만든 패키지를 배포
npm unpublish // 배포한 패키지 제거(24시간 이내에)
npm ci // package.json 대신 package-lock.json을 기반하여 패키지 설치
📌 패키지 배포하기
'백엔드 > Nodejs' 카테고리의 다른 글
[Nodejs] 익스프레스 웹 서버 만들기 (0) | 2021.11.16 |
---|---|
[Nodejs] http 모듈로 서버 만들기 (0) | 2021.11.15 |
[Nodejs] 노드 기능 알아보기 (0) | 2021.11.13 |
[Nodejs] 알아두어야 할 자바스크립트 (0) | 2021.11.11 |
[Nodejs] 노드 시작하기 (0) | 2021.11.10 |