728x90
1. NPM이란?
Node.js 기반의 패키지를 관리하는 도구(설치 및 버전관리)
다른 개발자들이 만든 모듈을 의미하는 3rd-party module의 소스 코드들이 모아져 있는 저장소(npm registry), 웹 사이트(website), 그리고 npm CLI를 통칭해서 NPM이라고 함
모듈의 구분
Built-in module
- Node.js가 설치되면서 기본으로 내장되어 있는 모듈
Custom module
- Node.js CommonJS 방식으로 만들 모듈
3rd-party module
- 다른 개발자들이 만들어 놓은 모듈
2. package.json
- 프로젝트에 대한 메타 정보와 프로젝트에서 사용중인 npm 패키지에 대한 정보를 담은 파일
- 프로젝트 초기 세팅 시 package.json부터 만들고 시작
- npm 패키지의 버전까지 기록
# project 폴더에서 아래 명령어 실행
$ npm init
Press ^C at any time to quit.
package name: (nodejs-study) westarbucks
version: (1.0.0)
description:
entry point: (index.js)
test command:
git repository:
keywords:
author: lordmyshepherd
license: (ISC) MIT
About to write to /Users/lims/software_engineer/nodejs-study/package.json:
# npm init이 완료되면 폴더에 package.json이 생성됨
- pacakage.json 구성
- name: 패키지의 이름. package.json의 name 속성에 저장
- version: 패키지의 버전. npm의 버전은 다소 엄격하게 관리
- scripts : node.js command line을 정의해서 사용 가능
- dependencies : 프로젝트에서 사용하는 배포용 패키지와 각 버전을 명시
- devDependencies : 프로젝트에서 사용하는 로컬 개발용 패키지와 각 버전이 명시
- git repository: 소스코드를 저장해둔 Git 저장소 주소.
- keywords: 키워드는 npm 공식 홈페이지(https://npmjs.com)에서 활용됨. package.json의 keywords 속성에 저장
- license: 해당 패키지의 라이선스 넣는 곳
3. node_modules
- npm install 명령어를 실행할 때 생성되는 node_modules 디렉토리
- 디렉토리 내부에는 설치한 패키지들(express, cookie, 등)이 포함 → 패키지들 한번에 관리 가능
- package-lock.json도 생성되어 패키지 간 의존 관계를 명확하게 표시
/node_modules
.
├── body-parser
│ └── lib
│ └── types
├── bytes
├── content-disposition
├── content-type
├── cookie
├── cookie-signature
├── express
│ └── lib
│ ├── middleware
│ └── router
├── finalhandler
├── forwarded
├── fresh
├── http-errors
...
3-4. 자주 사용하는 npm 명령어 목록
- npm outdated : 사용하는 어떤 패키지에 업데이트된 내역을 확인
- npm install + package : 배포용 패키지를 설치한 후에 package.json의 dependencies 속성에 추가
- npm install --save-dev + package : 개발용 패키지를 설치한 후에 package.json의 devDependencies 속성에 추가
- npm uninstall + package : 패키지를 삭제 (npm rm + package도 가능)
- npm search + 검색어 : npm 패키지를 검색
- npm info + package : 패키지의 세부 정보 출력
- npm login : npm에 로그인을 하기 위한 명령어로 사전에 npmjs.com에서 회원가입이 필요
- npm whoami : 현재 사용자가 누구인지 출력
- npm logout : 로그인한 계정에서 로그아웃
- npm version + major : package.json에서 major version 올림
- npm deprecate + [package][version][message] : 패키지를 설치할 때 경고 메시지를 띄움
- npm publish : 만든 패키지를 npm에 배포
- npm unpublish : 만든 패키지의 배포를 중단
'Dev > Nodejs' 카테고리의 다른 글
Node.js 와 이벤트 루프 (0) | 2024.04.03 |
---|---|
Node.js 모듈 시스템 및 동기/비동기 (0) | 2022.08.07 |
Node.js의 이해 (0) | 2022.08.07 |