Published on

package.json 파일이 뭔가요?

Authors
  • Name
    라이브러리 기술블로그
    Twitter

package.json

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): authorcontributors 영역에는 패키지의 작성자와 기여자 정보를 작성할 수 있습니다.
  • 홈페이지(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 프로젝트에서 중요한 역할을 수행하며, 패키지 관리와 개발 환경의 일관성을 유지하는 데 도움을 줍니다.