서비스에 필요한 패키지를 하나씩 추가하다 보면 패키지 수가 100개를 훌쩍 넘어 버리게 됩니다.

그리고 사용할 패키지는 저마다 고유한 버전이 있으므로 어딘가에 기록해두어야겠죠?

같은 패키지라도 버전별로 기능이 다를 수 있으므로 동일한 버전을 설치하지 않으면 문제가 생길 수 있기 때문이죠!

이 때 설치한 패키지의 버전을 관리하는 파일이 바로!! **package.json**입니다!

따라서 프로젝트 초기 세팅 시 package.json부터 만들고 시작하는 것이 좋습니다.

npm init 명령어를 통해 package.json을 만들 수 있습니다.

예시 pacakage.json

{
  "name": "back",
  "version": "1.0.0",
  "main": "src/index.js",
  "scripts": {
    "dev": "ts-node src",
    "build": "tsc && node dist"
  },
  "dependencies": {
    "bcryptjs": "^2.4.3",
    "dotenv": "^8.2.0",
    "express": "^4.17.1",
    "express-validator": "^6.10.0",
    "gravatar": "^1.8.1",
    "jsonwebtoken": "^8.5.1",
    "mongoose": "^5.12.3"
  },
  "devDependencies": {
    "@types/bcryptjs": "^2.4.2",
    "@types/express": "^4.17.11",
    "@types/mongoose": "^5.10.4",
    "@types/node": "^14.14.37",
    "ts-node": "^9.1.1",
    "typescript": "^4.2.3"
  },
  "author": "",
  "license": "ISC",
  "description": ""
}

name : 패키지 이름

version : 패키지의 버전

main : entry point, 자바스크립트 실행 파일 진입점

scripts : 코드를 실행할 때 사용하는 명령어 모음

license : 해당 패키지의 라이선스

<aside> 💡 라이선스란? 오픈 소스라고 해서 모든 패키지를 아무런 제약 없이 사용할 수는 없습니다! 라이선스별로 제한 사항이 있으므로 설치 전에 반드시 라이선스를 확인해야 합니다!

</aside>

dependencies : 다운받은 라이브러리 모음

devDependencies : 다운받은 개발용 라이브러리 모음