npm(Node Package Manager)란?


  • npm은 다른 사람들이 개발하고 npm에 배포한 모듈을 간단한 명령어로 설치할 수 있게 도와주는 노드의 패키지 매니저입니다.




package.json


  • 개발하고 있는 또는 개발된 프로젝트를 다른 PC에서 설치하고 실행할 때 기존에 개발했던 PC에서와 동일하게 동작하려면 어떤 패키지를 설치했고 설치한 패키지의 버전을 알고 있어야합니다. 프로젝트 정보 및 필요한 패키지들의 정보를 관리하는 파일이 package.json입니다.

  • npm init 명령어를 통해서 package.json을 셋팅할 수 있습니다.




package.json 프로퍼티


  • name : 패키지의 이름입니다.

  • version : 패키지의 버전입니다.

  • main : 자바스크립트의 실행 파일 진입점입니다. 보통 module.exports를 하는 파일을 지정합니다.

  • scripts : 프로젝트 명령어를 정의할 수 있습니다.

  • author : 프로젝트 개발자입니다.

  • license : 해당 패키지의 라이센스입니다.




node_modules


  • npm i 명령어로 설치한 패키지 코드가 들어있는 폴더입니다. 패키지에 따라서 하나의 패키지가 다른 여러 패키지를 의존하고 있을 수 있기 때문에 하나의 패키지를 설치한다 해도 무수히 많은 다른 패키지가 node_modules에 설치될 수 있습니다.

  • node_modules는 package.json만 있으면은 언제든지 다시 설치할 수 있는 폴더입니다. 실제로 버전관리 툴로 버전을 관리할 때 node_modules는 제외하고 관리하는게 더 좋습니다.




package-lock.json


  • node_modules에 들어있는 패키지들의 정확한 버전과 의존 관계가 작성된 파일입니다. npm으로 패키지를 설치, 수정, 삭제할 때마다 패키지들 간의 내부 의존 관계를 해당 파일에 저장합니다.




dependencies와 devDependencies


dependencies


  • 프로젝트 실행에 필요한 패키지들이 작성된 파트이며 npm i (패키지 명)를 통해 패키지를 설치하면 dependencies에 정의됩니다.




devDependencies


  • 프로젝트 개발할 때 필요한 패키지들이 작성된 파트이며 npm i (패키지 명) -D를 통해 패키지를 설치할 때 devDependencies에 정의됩니다. 그리고 devDependencies에 정의된 패키지들은 실제 배포시에는 사용되지 않는 패키지들입니다.




'Node.js' 카테고리의 다른 글

express 프레임 워크란?  (0) 2022.12.18
Node.js의 파일 시스템  (0) 2022.12.17
Node.js와 모듈  (0) 2022.12.11
Node.js란?  (0) 2022.12.11

+ Recent posts