NPM
NPM이란 Node Package Manager의 약자로 node.js의 패키지를 개발하고 배포, 공유하기 위한 관리 툴
Difference between Package and Module
Module: 작은 단위로 독립된 하나의 기능을 수행한다.
Package: Module들이 조합되어 Module보다 복합적인 기능을 수행한다.
What is package.json?
현재 프로젝트에 관한 정보와 npm을 통해 설치한 모듈의 의존성을 관리하는 파일.
Why use package.jsopn?
프로젝트에서 사용하는 외부 모듈들이 많아지게 되면 관리하기가 어려움.
새로운 프로젝트를 진행할 경우 필요한 모듈들이 많다면 매번 npm 명령으로 설치해야되는 효율적인 문제.
=> package.json은 필요한 패키지의 목록을 파일로 정리해놓기 때문에 이 목록 파일을 이용하여 단 한번의 명령으로 필요한 패키지들을 모두 설치할 수 있다.
npm install
what is node_modules?
npm을 통해 프로젝트를 생성하면 node_module이라는 디렉토리가 생성된다.
package.json는 현 프로젝트가 의존하고 있는 모듈에 대한 정보이고, node_modules 디렉토리는 package.json에 있는 모듈과, 그 모듈이 의존하고 있는 모든 모듈을 포함하고 있다.
즉, npm으로 새로운 패키지를 설치하면 자동으로 package.json과 node_modules가 추가된다.
what is package-lock.json?
node_modules에 대한 정보를 가지고 있는 파일이다.
결국 package.lock.json도 모든 모듈들의 정보를 가지고 있다.
그래서 node_modules나 package.json를 수정하게되면 package-lock.json도 자동으로 업데이트 된다.
만약 특정 패키지를 설치하면 package.json에 ^9.10.3 이런식으로 버전의 범위가 추가되게 되는데 이 버전의 패키지가 추가된 package.json을 가지고 npm install을 사게되면 9.10.3버전이 설치되지만 해당 패키지의 버전이 없데이트 된 후 동일한 package.json을 가지고 npm install을 할 겨우 새로 9.10.3 버전이 아닌 새로 업데이트된 버전으로 변경되어 기존 node_module과 버전 충돌이 일어나게 되어 package-lock.json를 통해 이 문제를 해결한다.
-> package-lock.json은 node_modules의 정보를 가지고 있기 때문에 package-lock.json이 업데이트 되는 시점에 node_modules를 재생성할 수 있다.
그래서 npm install로 package.json과 package-lock.json이 업데이트 되는 것과 동시에 node_modules가 재생성되어 버전을 동일하게 맞출 수 있다.
'Programming > NodeJS' 카테고리의 다른 글
Node.js 교과서 [NoSQL] #8 [몽고디비] (0) | 2024.03.30 |
---|---|
Node.js 교과서 복습 (1) | 2024.02.25 |
Node.js 교과서 [NoSQL] #8 (0) | 2024.02.18 |
Node.js 교과서 [MySQL] #7 (1) | 2024.02.17 |
Node.js 교과서 [Express, Middleware, Route, 템플릿 엔진] #6 (1) | 2024.02.11 |