dev_hun
2022. 12. 18. 02:32
2022. 12. 18. 02:32
npm(Node Package Manager)란?
- npm은 다른 사람들이 개발하고 npm에 배포한 모듈을 간단한 명령어로 설치할 수 있게 도와주는 노드의 패키지 매니저입니다.
package.json
- 개발하고 있는 또는 개발된 프로젝트를 다른 PC에서 설치하고 실행할 때 기존에 개발했던 PC에서와 동일하게 동작하려면 어떤 패키지를 설치했고 설치한 패키지의 버전을 알고 있어야합니다. 프로젝트 정보 및 필요한 패키지들의 정보를 관리하는 파일이 package.json입니다.
- npm init 명령어를 통해서 package.json을 셋팅할 수 있습니다.
package.json 프로퍼티
- main : 자바스크립트의 실행 파일 진입점입니다. 보통 module.exports를 하는 파일을 지정합니다.
- scripts : 프로젝트 명령어를 정의할 수 있습니다.
- 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에 정의된 패키지들은 실제 배포시에는 사용되지 않는 패키지들입니다.