- Published on
package.json 파일이 뭔가요?
- Authors
- Name
- 기술 라이브러리
package.json
파일은 프로젝트의 종속성, 스크립트 및 메타데이터를 관리하기 위해 Node.js 프로젝트에서 사용되는 표준 파일입니다. 이 파일은 프로젝트가 의존하는 패키지와 프로젝트의 이름, 버전 및 설명과 같은 기타 정보를 지정하는 데 사용됩니다.
package.json
파일은 일반적으로 Node.js
프로젝트의 루트 디렉터리에 있으며 npm(노드 패키지 관리자)에서 프로젝트의 종속성 및 기타 측면을 관리하는 데 사용됩니다.
npm
을 사용하여 프로젝트를 설치하면 package.json
파일을 사용하여 설치할 패키지와 버전을 결정하므로 다른 시스템에서 프로젝트를 쉽게 다시 만들 수 있습니다. 또한 package.json
파일을 사용하여 코드 빌드 또는 테스트와 같은 프로젝트 내 특정 작업을 수행하기 위해 실행할 수 있는 스크립트를 지정할 수도 있습니다.
Package.json: 프로젝트와 패키지의 상세 설명서
package.json
은 프로젝트와 관련된 메타데이터를 담고 있는 파일입니다. 이전에 패키지는 npm을 통해 주고 받는 장소로 설명되었는데, package.json
은 주고 받는 패키지의 상세 설명서라고 할 수 있습니다. 바로 패키지의 이름, 버전, 데이터 등이 담긴 파일이지요. 이러한 정보들은 npm뿐만 아니라 패키지의 최종 사용자에게도 매우 중요합니다.
일반적으로 package.json
파일은 Node.js
프로젝트의 루트 디렉토리에 위치합니다. npm
은 이 파일을 통해 프로젝트를 식별하고, 프로젝트의 디펜던시(dependency)를 처리합니다. 그러나 Node.js
는 기본적으로 package.json
의 단 두 가지 영역만을 인식합니다.
프로젝트 이름(name)
프로젝트의 이름은 name
영역에 기재됩니다. 이 영역은 패키지를 식별하는 데 사용되며, 일반적으로 프로젝트 이름은 고유해야 합니다.
패키지 버전(version)
버전은 version
영역에 명시됩니다. 패키지 버전은 패키지의 상태와 변경 사항을 나타내며, 패키지가 업데이트되거나 수정되었을 때 버전을 업데이트합니다.
좀 더 완성도 있는 package.json의 경우, 다음과 같은 요소들을 포함할 수 있습니다. 이를 통해 사용자는 패키지에 대한 상세 정보를 빠르게 확인할 수 있습니다.
요소 예시
- 프로젝트 설명(description): 패키지에 대한 설명을
description
영역에 작성할 수 있습니다. - 키워드(keywords):
keywords
영역에는 패키지와 관련된 키워드를 작성할 수 있습니다. 이를 통해 패키지를 쉽게 검색할 수 있습니다. - 작성자(author)와 기여자(contributors):
author
와contributors
영역에는 패키지의 작성자와 기여자 정보를 작성할 수 있습니다. - 홈페이지(homepage): 패키지에 대한 홈페이지 URL을
homepage
영역에 작성할 수 있습니다. 의존성(dependencies): 패키지가 의존하는 다른 패키지를dependencies
영역에 명시할 수 - 있습니다. 패키지를 설치할 때, 이 의존성 패키지들도 함께 설치됩니다. - 저장소(repository):
repository
영역에는 패키지의 저장소 유형과 URL을 작성할 수 있습니다. - 메인 엔트리 포인트(main): 라이브러리의 주된 엔트리 포인트는
main
영역에 명시됩니다. 이러한package.json
파일은 프로젝트에 대한 설명과 키워드, 작성자 정보, 홈페이지, 저장소 등을 확인하는 데 유용합니다. 또한 패키지의 의존성과 버전 관리를 위해 중요한 역할을 합니다.
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
프로젝트에서 중요한 역할을 수행하며, 패키지 관리와 개발 환경의 일관성을 유지하는 데 도움을 줍니다.