package.json
package.json 파일에는 프로젝트와 관련된 메타 데이터가 담깁니다.
package.json은 npm에 있는 패키지를 주고 받는 상세 설명서라고 할 수 있습니다.
패키지의 이름, 버전, 데이터 등이 담긴 파일이 바로 package.json입니다.
구성 요소
package.josn은 확장자로 알 수 있듯, json파일로 속성-값의 쌍으로 이루어져 있습니다.
npm에서 이 속성을 field라고 표현하고 있다.
기본 구성 요소
$ npm init -y
yarn add install
처음 기본 설정 값으로 생성하게 된다면,
{
"name": "PROJECT_DIRECTORY",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"keywords": [],
"author": "",
"license": "ISC"
}
name
name과 version 은 필수로 입력되어야 하며 이 항목들이 누락되면 패키지를 설치할 수 없습니다.
name과 version을 통해서 각 패키지의 고유성을 판별하게 되고 패키지의 내용을 변경하려면 version을 변경해야 합니다.
name은 반드시 214자 보다 짧아야 하고, 이는 scoped package의 scope를 포함합니다.
name은 점(.)이나 밑줄(_)로 시작할 수 없습니다.
name은 대문자를 포함해서는 안됩니다.
version
description
문자열로 기술한 패키지에 대한 설명
npm에서 검색되었을 때 리스트에 표시되어 사람들이 패키지를 찾아내고 이해할 수 있는데 도움을 준다.
main
패키지의 진입점이 되는 모듈의 ID이다.
패키지의 root의 상대경로로 지정해야 한다.
지정하지 않은 경우, root 폴더의 index.js로 기본값이 설정된다.
scripts
패키지의 생명주기 중 다양한 타이밍에서 실행되는 script 명령들을 포함하고 있는 사전이다.
scripts 항목 객체에서 키는 이벤트이고, 값은 이때 실행될 커맨드이다.
keywords
키워드를 문자열 배열로 설명한다.
npm search 로 검색된 리스트에 표시되기 때문에 사람들이 만든 패키지를 찾아 내고 이해하는 데 도움이 된다.
license
패키지 사용자들이 만든 패키지를 사용하기 위해 어떻게 권한을 얻는지, 또 어떤 금기 사항이 있는지 알게하기 위해 라이센스를 명시해야 한다.
다른 사람에게 어떠한 조건에서도 비공개 또는 미공개 패키지를 사용할 수 있는 권한을 부여하고 싶지 않은 경우 unlicense를 적으면 된다.
이외에도 더많은 설정을 위한 field가 있지만 추가적인부분은npm Docs -package.json을 참고 하시길 바란다.