[NodeJS] NPM(Node Package Manager)이란?
NPM? (Node Package Manager)
- NPM이 없다면?
- 누군가 만든 Node.js package(Express와 같은?)를 공유한다고 할 때, 사이트 등에서 다운을 받는다. 그 package가 update 된 경우 메일과 같은 수단으로 알림을 받으면 다시 사이트로 가서 새 버전을 다운 받는다. 매우매우매우*1000 귀찮은 일…
- Node.js와 관련된 Package들을 모아놓고 다운받을 수 있는 저장소 같은 개념.
- package를 다운받고, update하고, 관리할 수 있는 등… 모든 일들을 NPM을 통해 할 수 있다.
NPM 다운?
- Node.js를 install하면 같이 install 됌.
- NPM 유무 check
1
2
3
npm -v
// 현재 버전 6.9.0
// 없다면 npm: command not found 와 같은 글이 나옴.
NPM 사용법
- npm init
- 여러가지 질문이 나오면서 설정이 시작 됌.
- 모든 옵션을 ‘yes’로 하고 싶다면
npm init -y
- package.json file이 생성 됌. npm init의 유무는 package.json이 있는지 체크!
1 2 3 4 5 6 7 8
{ "name":"example", "version": "1.0.0", "description": "package.json file example", "author": "Hyegyeong310", "license":"ISC" ... }
- package install 방법
npm install [package name]
- npm은 꼭 프로젝트 폴더에서 실행해야 한다. (package.json이 있는 폴더에서)
- package.json이 없는 곳에서 npm을 실행시키면 package.json을 읽지 못해서 내가 원하지 않은 다른 곳에 package.json을 만든다.
package.json?
- 누군가와 협업하고 있을 때 node_modules 폴더를 모두 건내줄 필요가 없음. 또는 github에 용량이 큰 node_modules 폴더를 올릴 필요 없음.
- package.json이 있으면 dependencies package들을 찾아서
npm install
명령어로 다운로드 됌.
dependency와 별개로 패키지를 설치하고 싶을 땐?
- 프로젝트 실행과 관련없는(dev용으로 필요하다던지…) 패키지를 설치할 때는
--save-dev
또는-D
옵션을 붙인다. node index.js
의 경우 변경사항이 있을 때마다 껐다 켜줘야하는 상황이 발생한다. 이럴 때 사용하면 좋은nodemon
package를 예로 들면npm install nodemon -D
로 설치할 수 있고, package.json에 아래와 같은 항목이 추가된 것을 확인할 수 있다.
1
2
3
4
5
6
// package.json
...
"devDependencies": {
"nodemon": "^1.19.1"
}
nodemon?
1
2
3
4
5
6
7
// package.json
"scripts": {
"start": "nodemon --exec index.js",
},
"devDependencies": {
"nodemon": "^1.19.1"
}
npm start
를 한 후 수정을 하고 저장하면, 자동으로 다시 실행해준다.