모든 npm 패키지는 package.json 파일을 프로젝트 루트에 포함하고 있습니다. package.json 파일은 무엇이며 또 어떤 역할을 할까요?
pacakage.json이란?
package.json 파일에는 프로젝트와 관련된 메타데이터가 담깁니다. 앞서 npm을 패키지를 주고 받는 장소라고 설명했는데요.
package.json 은 주고 받는 패키지에 대한 상세 설명서라고 할 수 있습니다. 즉, 패키지의 이름, 버전, 데이터 등이 담긴 파일이 바로 package.json입니다. 이러한 정보들은 모두 npm 뿐만 아니라 패키지의 최종 사용자에게 무척 중요한 것들입니다.
이러한 package.json 파일은 보통 Node.js 프로젝트의 루트 디렉토리에 위치해 있으며, npm 은 이를 통해 프로젝트를 식별하고, 프로젝트의 디펜던시(dependency)를 처리합니다.
그러나 기본적으로 Node.js 는 package.json 의 단 두 영역만을 식별합니다.
{
"name" : "barebones",
"version" : "0.0.0",
}
name
은 프로젝트의 이름입니다. version
은 설치된 패키지의 버전입니다.
보다 완성도 있는 package.json의 경우에는 다음의 요소들이 포함하며, 사용자는 이를 통해 패키지에 대한 상세 정보를 빠르게 확인할 수 있습니다.
{
"name" : "underscore",
"description" : "JavaScript's functional programming helper library.",
"homepage" : "http://documentcloud.github.com/underscore/",
"keywords" : ["util", "functional", "server", "client", "browser"],
"author" : "Jeremy Ashkenas <jeremy@documentcloud.org>",
"contributors" : [],
"dependencies" : [],
"repository" : {"type": "git", "url": "git://github.com/documentcloud/underscore.git"},
"main" : "underscore.js",
"version" : "1.1.6"
}
이를 통해 프로젝트에 대한 설명(description)과 키워드(keywords)를 살펴볼 수 있으며, author
, contributors
, hompage
, repository
등도 확인할 수 있습니다. main
은 라이브러리의 주된 엔트리 포인트입니다. dependencies
는 npm에서 사용할 수 있는 프로젝트의 종속 사항이며, 패키지를 설치할 때 함께 설치됩니다.
package-lock.json이란?
npm install
을 통해 패키지를 설치하면 node_modules 디렉토리와 함께 package-lock.json 파일이 생성됩니다.
node_modules는 프로젝트에 필요한 패키지가 실제로 설치되는 디렉토리입니다.
package-lock.json 파일은 package.json에 선언된 패키지가 설치될 때 정확한 버전과 디펜던시가 설치되도록 합니다.npm install
을 통해 패키지 설치를 진행할 때 package-lock.json을 바탕으로 패키지가 설치됩니다.
정리하자면 package.json은 프로젝트를 설명하는 역할을 하며, package-lock.json은 프로젝트에 필요한 패키지들을 실제로 설치할 수 있게 합니다.
참고
'개발 > Node.js' 카테고리의 다른 글
Node.js 에서 Nodemon으로 자동으로 서버 새로고침 하기 (0) | 2021.03.18 |
---|---|
NPM 패키지 매니저 개념과 작동 방식 (0) | 2021.03.15 |
Node.js 개념 및 설치 방법 (0) | 2020.10.07 |