728x90
Node Package Manager(NPM)
- 노드의 패키지 매니저
- 다른 사람들이 만든 소스 코드들을 모아둔 저장소
- 남의 코드를 사용하여 프로그래밍 가능
- 이미 있는 기능을 다시 구현할 필요가 없어 효율적
- 오픈 소스 생태계를 구성중
- 모듈이 다른 모듈을 사용할 수 있듯 패키지도 다른 패키지를 사용할 수 있다(의존 관계라고 부른다)
패키지 = npm에 업로드된 노드 모듈
Package.json
현재 프로젝트에 대한 정보와 사용 중인 패키지에 대한 정보를 담은 파일
- 같은 패키지라도 버전별로 기능이 다를 수 있으므로 버전을 기록해두어야 함
- 동일한 버전을 설치하지 않으면 문제가 생길 수 있음
- 노드 프로젝트 시작 전 package.json부터 만들고 시작함(npm init)
npm init

- package name: 패키지의 이름입니다. package.json의 name 속성에 저장됩니다.
- version: 패키지의 버전입니다. npm의 버전은 다소 엄격하게 관리됩니다. 5.3절에서 다룹니다.
- entry point: 자바스크립트 실행 파일 진입점입니다. 보통 마지막으로 module.exports를 하는 파일을 지정합니다. package.json의 main 속성에 저장됩니다.
- test command: 코드를 테스트할 때 입력할 명령어를 의미합니다. package.json scripts 속성 안의 test 속성에 저장됩니다.
- git repository: 코드를 저장해둔 Git 저장소 주소를 의미합니다. 나중에 소스에 문제가 생겼을 때 사용자들이 이 저장소에 방문해 문제를 제기할 수도 있고, 코드 수정본을 올릴 수도 있습니다. package.json의 repository 속성에 저장됩니다.
- keywords: 키워드는 npm 공식 홈페이지(https://npmjs.com)에서 패키지를 쉽게 찾을 수 있게 해 줍니다. package.json의 keywords 속성에 저장됩니다.
- license: 해당 패키지의 라이선스를 넣어주면 됩니다.
스크립트 실행하기
npm run test
//start는 많이 사용되서 생략 가능하다
npm run start
npm run
- npm run [스크립트명]으로 스크립트 실행
- start 같은 경우 많이 사용되 생략 가능하다
패키지 설치하기
npm install express
npm install morgan cookie-parser express-session

- package.json에 기록됨(dependencies에 express 이름과 버전 추가됨)
- npm install 시 node_modules 폴더 생성 express 외에도 express와 의존 관계가 있는 패키지들이 모두 설치됨
- package-lock.json도 생성되어 패키지 간 의존 관계를 명확하게 표시함
- 내부에 설치한 패키지들이 들어 있음
- npm install 패키지1 패키지 2...로 여러 개 설치 가능
개발자용 패키징
npm i -D nodemon
- npm install --save-dev 패키지명 또는 npm i -D 패키지명
- devDependencies에 추가됨
글로벌(전역) 패키지
npm i -g rimraf
npm i -D rimraf
//글로벌 패키지처럼 사용
npx rimraf node_modules
- npm install --global 패키지명 또는 npm i -g 패키지명
- 모든 프로젝트와 콘솔에서 패키지를 사용할 수 있음
- 예제는 rm –rf(리눅스의 삭제 명령)를 흉내내는 rimraf 패키지의 글로벌 설치
- npx로 글로벌 설치 없이 글로벌 명령어 사용 가능
- 기록으로 남지 않기 때문에 해당 글로벌 패키지를 설치했는지 알 수 없다
- npx를 사용해서 글로벌로 사용하는 것이 가장 좋다
728x90
'Node > 패키지 매니저' 카테고리의 다른 글
| npm 배포하기 (0) | 2022.09.06 |
|---|---|
| npm 명령어들 알아보기 (0) | 2022.09.06 |
| SemVer (0) | 2022.09.06 |