모든
NPM
,YARN
패키지는package.json
을project
의root
에 포함하고있다.
pacakage.json
에는 해당하는 프로젝트의 메타데이터가 담긴다. 즉, NPM
,YARN
과같은 패키지를 주고받는곳의 상세 설명서와 같은것이다.
pacakge.json
에는 해당하는 패키지의 이름, 버전, 데이터등이 들어있다.
이를 통해서 프로젝트를 식별하고, dependency
를 처리한다.
하지만
Node.js
에서는 기본적으로는 단 두개의 영역만을 판별한다.{ "name": "myPackage", "version" : "1.0.0", }
name
은 프로젝트의 이름,version
은 설치된 패키지의 버전이다.{ "name": "myPackage", "version" : "1.0.0", "description": "설명들", "license": "MIT", "author" : "ME", //.... }
위와 같이 다양한 속성들이 있다. 대표적으로
description
은 설명을 의미하고authot
는 제작자,license
는 라이센스를 의미한다보통
MIT
라고 적혀있는데 이 라이센스는
- 이 소프트웨어를 누구라도 무상으로 제한없이 사용해도된다.
- 단, 저작권 표시 및 허가표시를 모든 복제물 또는 주용한 부분에 기재해야한다.
- 저자와 저작권자는 책임을 지지않는다
를 의미한다.
버전은 마구잡이로 정해선 안된다.
[메이저]
.[마이너]
.[패치]
로 구분하게 되는데
메이저
: 대규모 업데이트 (이전 버전과 호환이 불가능)마이너
: 소규모 업데이트 (이전 버전과 호환은 가능)패치
: 버그수정정도특히 NPM
등 패키지매니저에선 버전앞에 기호를 붙이는데 숫자만 붙어있는경우는 무조건 그 버전을 설치해야하는것을 의미한다.
^
: 마이너
버전까지 변경을 허용한다.~
: 패치
버전까지 변경을 허용한다.기본적으로 NPM
은 ^
을 사용중이다.