package.json
은 배포했던 파일의 모듈 정보를 담고있다.
npm install
을 통해 한번에 모든 모듈을 다운받을 수 있는 편리한 기능이다.
{
"name": "day07",
"version": "1.0.0",
"main": "index.js",
"license": "MIT",
"type": "module",
"scripts": {
"start": "node index.js"
},
"dependencies": {
"axios": "^0.24.0",
"dotenv": "^14.1.0",
"express": "^4.17.2",
"swagger-jsdoc": "^6.1.0",
"swagger-ui-express": "^4.3.0"
}
}
와 같은 예시가 있을 때,
- 제일 중요한 항목은
name
과 version
이다.
중앙 저장소에 배포할 때 필수 항목. url로 사용되고, 설치할 때 디렉토리 이름이 되기 때문에 url이나 디렉터리에서 쓸 수 없는 이름을 사용하면 안된다.
- description : 설명을 문자열로 기술한것. npm search에 검색됨
- keywords: 키워드를 문자열 배열로 설명한것. npm search에 검색됨
- homepage : 프로젝트 홈페이지가 있을 경우에 입력. url과는 다름
- bugs : 버그가 있는 경우에 참고할 곳. 연락할 곳.
- license : 패키지 사용자가 패키지를 사용하기 위해 어떻게 권한을 얻는지, 금기 사항이 있는지 알게하기 위해 명시한다.
- people fileds : 'author'는 한 사람을 지정, 'contributors'는 여러 사람을 배열로 지정.
- files : 프로젝트에 포함된 파일의 배열.
.npmignore
에 기록된 파일이 files에 지정되어 있어도 제외됨.
- main : 프로그램이 시작점이 되는 모듈의 ID. 패키지 루트에 상대적 경로를 지정해야함...????????????
- bin : PATH를 수동으로 지정해줌
- repository : 소스 코드가 관리되는 저장소 위치를 지정함.
"repository": {
"type": "git",
"url": "http://github.com/npm/npm.git"
}
- scripts : 다양한 타이밍에서 실행되는 script 명령어를 포함하는 사전.
- config : 패키지 버전에 관계없이 패키지 스크립트에서 사용될 수 있는 설정 정보
등 다양한 항목이 있는데, 평소에 자주 사용하는 항목과 비슷해보이는 위주로만 공부해봤다. 생각보다 다양하게 지정이 가능하고 제작자 말고 사용자도 유용하게 사용한다는 점에 더더욱 없어서는 안되는 파일이란것을 알게됐다.
출처1 : https://docs.npmjs.com/cli/v7/configuring-npm/package-json
출처2 : https://programmingsummaries.tistory.com/385