Package.json이 정확하게 뭘까?

donggae·2023년 2월 24일
3

study

목록 보기
1/1
post-thumbnail

프로젝트 초기 설정을 하면서 생긴 궁금증을 정리

Q. package.json이 정확하게 무엇일까?
A. npm i 하면 설치되는 것, 설정파일 아닌가?

package.json은 프로젝트에 대한 설정파일으로 알고 있었다.
npm을 잘 알고 쓸 수 있도록 필요한 package.json 알아보자.


What is NPM?

NPM(Node Package Manager)은 node.js를 오픈소스 생태계

  • Q. 그럼 오픈소스 생태계는 뭔데?
  • A. 개발에서 사용되는 여러가지 오픈소스 프로젝트들이 상호작용하며 발전해나가는 큰 생태계

npm은 node.js에서 사용되는 모듈들을 패키지로 만들어 관리하고 배포하고 있다.

  • Q. 모듈이 뭐야?
  • A. 소프트웨어 개발에서 기능 단위로 나누어진 독립적인 코드블럭
    이 모듈은 다른 코드와 분리되어 독립적으로 작동, 프로그램 전체에서 재사용 가능

package.json

package.json : 개발자가 배포한 패키지에 대해, 다른사람들이 관리하고 설치하기 쉽게 하기 위한 문서

  • 자신의 프로젝트의 버전을 표시해준다.
  • 다른 환경에서도 빌드를 재생 가능하게 만들고, 다른 사람들도 쉽게 사용 가능하게 한다.
  • 자신의 프로젝트가 어떠한 패키지들과 상호작용하는 리스트도 알려준다

package.json - 구성 요소

package.json은 확장자가 .json 파일로 "속성-값" 한 쌍으로 이루어져 있다.

$ npm init -y 을 하게 되면 여러가지 여러가지"속성-값" 이 나온다.

  • "name" : 해당 프로젝트의 이름
  • "version" : 특정 시점에서의 버전 상태
    "description" : 이 프로젝트에 대한 설명
  • "main" : 패키지의 진입점(모듈의 ID)
    default : index.js
  • "scripts" : 명렁어를 정의하고 key에 해당하는 alias를 이용해 호출 가능
    ex) npm run dev
  • "keywords" : description과 마찬가지로 사람들이 패키지를 이해할 수 있는데 도움을 준다.
  • "author" : 배포자를 의미하는데 다수의 사람일 경우 "contributors"로 변경
  • "dependencies & devDependencies" : 이 프로젝트에서 사용하는 패키지들과
    해당 패키지들이 의존하는 목록
    -> 패지키 이름과 해당 패키지 버전 정보가 포함
    npm을 이용하여 패키지를 설치할 때 자동으로 관리 해준다.

package-lock.json

  • Q. package.json은 알겠어 package-lock.json은 뭔데?
  • A. lock 말그대로 잠그는 거니까 보호해주는 거?

what is package-lock.json?

  • npm을 사용하여 패키지를 설치할 때 생성되는 파일 중 하나
  • "정확한 버전 관리" : 의존성을 기반으로 각 패키지의 정확한 버전을 기록, 여러 환경에서 실핼할 때, 패키지 버전이 일관되게 유지한다.
  • "의존성 해결" : 의존하는 패키지 간의 버전 충돌을 해결. 여러 패키지가 동일한 패키지의 서로 다른 버전을 의존하고 있다면, lock-.json파일이 의존성 트리를 일관성 있게 유지
    "속도 향상" : npm이 패지지의 의존성 트리를 재구성하는 대신 이 파일을 사용하여 필요한 패키지를 더 빠르게 찾을 수 있다.

위와 같은 이유로 npm을 사용하여 패키지를 설치하고 의존성을 관리하는데 매우 중요한 역할을 한다. 꼭 포함시켜서 프로젝트를 관리하는 것을 지향!

profile
아자자자

0개의 댓글