package.json?

eotkds·2022년 4월 1일
0

코드캠프

목록 보기
10/31

package.json?

이번에 수강을 들으면서 package.json 파일은 여러번 봐 왔다. 단순히 npm 관련 install할 리스트라고 생각했었는데 이번 기회에 세밀하게 알아보자.

우선 mpm 부터 알아보자

Node Package Manager 의 약자로 node.js를 위한 패키지 매니저이자 오픈소스 생태계라고 한다. npm은 node.js에서 사용하는 모듈들을 패키지로 만들어 관리하고 배포하고 있다고 한다. 또한 다른 모듈이 사용하고 있는 다른 모듈의 의존성 또한 자동으로 해결해 준다고 한다.

package.json 파일 생성에 대해

공식홈에서는 아래와 같이 나와 있다.

You can add a package.json file to your package to make it easy for others to manage and install. Packages published to the registry must contain a package.json file.
A package.json file:

  • lists the packages your project depends on
  • specifies versions of a package that your project can use using semantic versioning rules
  • makes your build reproducible, and therefore easier to share with other developers

대략적으로 정리하자면 ㅠ 팩키지에는 package.json 파일이 반드시 포함되어 있다고 한다. 이 package.json 파일은 내가 만든 프로젝트의 팩키지 리스트들이 있고, 버전 정보 또한 포함되어 있다고 한다. 그래서 재생산성을 쉽게 하고, 다른 개발자와 공유할 수 있도록 만든다고 한다.

package.json에서 포함하고 있는 내용

크게는 프로젝트 정보와 패키지 버전 정보가 있다고 한다. 포함하고 있는 정보들에 대해 알아보도록 하자. (많아서 이해한 만큼만...)

  • 프로젝트 정보
    name과 version 정보가 있으며,
    name 정보는 소문자 한단어로 이루어져야 하고, 하이픈(-)과 언더스코어(_)가 포함될 수 있다고 한다.
    version 정보는 x.x.x 형식으로 따라야 하며, 작성 규칙을 시맨틱 버저닝이라고 한다.
    시맨틱 버저닝에 대해서는 이 곳을 통해서 알아보자 ㅠ

  • 패키지 정보
    패키지 정보에는 dependencies와 devDependencies가 있으며,
    dependencies는 프로덕션 환경에서 응용 프로그램에 필요한 패키지를 의미하며,
    devDependencies는 로컬 개발 및 테스트에만 필요한 패키지를 의미한다.

  • scripts
    패키지의 생명주기에서 다양한 타이밍에 자주 사용할 command를 별칭을 통해 지정해 둘 수 있다고 한다. 일종에 편리하게 호출 하기 위해 사용하는 것이다.

이렇게 매일 접하면서도 이렇게나 많은 정보를 내포하고 있는지 몰랐다(사실 다 알지도 못한다 ㅠ) 글쓰기가 이렇게나 힘들줄이야...

참고

[package.json, npm핸드북, 2022년04월03일 접속]
https://outofbedlam.gitbooks.io/npm-handbook/content/config/package-json.html
[알고 쓰자 package.json, hoya-kim blog, 2022년04월03일 접속]
https://hoya-kim.github.io/2021/09/14/package-json/
[npm 소개와 설치 (About Node Package Manager), 티스토리, 2022년04월03일 접속]
https://web-front-end.tistory.com/3
[Creating a package.json file, npmjs, 2022년04월03일 접속]
https://docs.npmjs.com/creating-a-package-json-file
[package.json 알아보기, velog, 2022년04월03일 접속]
https://velog.io/@skyepodium/package.json

profile
개발자준비중

0개의 댓글