npm
npm(Node Package Manager)은 이름 그대로 노드 패키지 매니저를 의미한다. 대부분의 자바스크립트 프로그램은 패키지라는 이름으로 npm에 등록되어있어 npm에 등록된 패키지를 사용할 수 있다.
pacakge.json
pakage.json은 설치한 패키지의 버전을 관리하는 파일이다.
npm init
package.json을 만들려면 터미널에 npm init을 입력하면된다.
- package name: 패키지의 이름이다. package.josn의 name 속성에 저장된다.
- version: 패키지 버번이다
- entry point: 자바스크립트 실행 파일 진입점이다. package.json의 main 속성에 저장된다.
- test command: 코드를 테스트할 때 입력할 명령어를 의미한다. package.json script 속성 안의 test 속성에 저장된다.
- git repository: 코드를 저장하둔 깃(Git) 저장소 주소를 의미한다. package.json의 repository 속성에 저장된다.
- keywords: npm 공식 페이지에서 패키지를 쉽게 찾을 수 있게 한다. package.json의 keywords 속성에 저장된다.
- license: 해당 패키지의 라이선스를 등록한다.
npm run [명령어]
scripts 속성은 npm 명령어를 저장해두는 부분이다.
콘솔에서 npm run [스크립트 명령어]를 입력하면 해당 스크립트가 실행된다.
보통 start 명령어에 node [파일명]을 저장해두고 npm start로 실행한다.
start나 test 같은 스크립트는 run을 붙이지 않아도 실행된다.
npm install [패키지]
패키지를 설치할때 사용하는 명령어다.
npm install [패키지 이름]을 package.json이 있는 폴더의 콘솔에서 입력하면 된다.
설치한 패키지들은 package.json의 dependencied 속성에 기록된다.
install을 i로 줄여쓸 수 있다.
npm install(또는 i) --global(또는 -g) [패키지]
패키지를 전역에 설치하는 명령어다 전역 설치한 패키지는 손솔 명령어로 바로 사용할 수 있다.
// package.json
{
"name": "npmtest",
...
"dependencies": {
"body-parser": "^1.20.3",
"cookie-parser": "^1.4.7",
"express": "^4.21.1"
},
}
node_modules
설치한 패키지들이 들어있는 디렉토리다. 여러 패키지들이 의존 관계에 얽혀 여퍼 패키지들이 들어있다.
패키지가 다른 패키지를 사용할 수 도 있는데 이런 관계를 의존 관계라 부른다.
package-lock.json
package.json은 직접 설치한 패키지를 기록하는 파일이고, package-lock.joson은 패키지 간의 의존 관계를 명시하는 파일이다.
npm install -D [패키지]
개발용 패키지를 설치하는 옵션이다. 실제 배포 시에는 사용되지 않고, 개발 중에만 사용되는 패키지들이다.
npm install --save-dev [패키지]로 설치할 수 도 있다.
설치한 패키지들은 package.json의 devDependencied 속성에 기록된다.
// package.json
{
"name": "npmtest",
...
"devDependencies": {
"nodemon": "^3.1.7",
"rimraf": "^6.0.1"
}
}
패키지 버전
노드 패키지들의 버전은 SemVer 방식의 버전 넘버링을 따른다.
SemVer(Semantic Versioning)은 버전 번호를 어떻게 정하고 올려야 하는지를 명시하는 규칙이다.
- 버전의 첫 번째 자리는 메이저(major)버전이다. 메이저 버전은 하위 호환이 안 될 정도로 패키지의 내용이 수정되었을 때 올린다.
- 버전의 두 번째 자리는 마이너(minor)버전이다. 마이너 버전은 하위 호환이 되는 기능 업데이트를 할 때 올린다.
- 버전의 세 번째 자리는 패치(patch)버전이다. 기존 기능에 문제가 있어 수정한 것을 내놓았을때 버전을 올린다.
기타 npm 명령어
npm outdated
업데이트할 수 있는 패키지가 있는지 확인해보는 명령어다.
Current와 Wanted가 다르다면 업데이트가 필요한 경우다.
npm update
업데이트 가능한 모든 패키지가 Wanted에 적힌 버전으로 업데이트된다.
npm uninstall [패키지 이름]
해당 패키지를 제거하는 명령어다.
npm rm [패키지 이름]으로 사용할 수도 있다.
npm search [검색어]
cli로 npm의 패키지를 검색할 수 있다.
npm info [패키지 이름]
패키지의 세부 정보를 파악하고자 할 때 사용한다.
package.json의 내용과 의존 관계, 설치 가능한 버전 정보 등이 표시된다.
npm login
npm에 로그인하는 명령어다. 패키지를 배포하려면 로그인이 필요하다.
npm whoami
로그인한 사용자가 누구인지 알린다.
npm logout
npm login으로 로그인한 계정을 로그아웃 한다.
npm version [버전]
package.json의 버전을 올린다
원하는 버전의 숫자를 넣거나 major, minor, patch를 넣어 해당 부분의 숫자를 1 올릴 수 있다.
npm publish
자신이 만든 패키지를 배포할 때 사용한다.
npm unpublish
자신이 배포한 패키지는 72시간 내에 제거할 수 있다. 이때 사용하는 명령어다.
참고
Node.js 교과서 : 네이버 도서
네이버 도서 상세정보를 제공합니다.
search.shopping.naver.com
[개정3판] Node.js 교과서 - 기본부터 프로젝트 실습까지 강의 | 제로초(조현영) - 인프런
제로초(조현영) | 노드가 무엇인지부터, 자바스크립트 최신 문법, 노드의 API, npm, 모듈 시스템, 데이터베이스, 테스팅 등을 배우고 5가지 실전 예제로 프로젝트를 만들어 나갑니다. 클라우드에 서
www.inflearn.com
'Node.js' 카테고리의 다른 글
[Node.js 교과서] 섹션7 - MySQL (3) | 2024.11.09 |
---|---|
[Node.js 교과서] 섹션 6 - 익스프레스 웹 서버 만들기 (0) | 2024.11.03 |
[Node.js 교과서] 섹션 4 - http 모듈로 서버 만들기 (1) | 2024.10.23 |
[Node.js 교과서] 섹션 3 - 노드의 기본 기능 익히기 (1) | 2024.10.19 |
[Node.js 교과서] 섹션 2 - 알아두어야 할 자바스크립트 (0) | 2024.10.12 |