[JavaScript] Package.json

조혜인·2022년 7월 13일
0
post-thumbnail

📌 Package.json 이란?

한마디로 개발자가 배포한 패키지에 대한 모듈 정보를 담고있는 목록이라고 보면 된다.
이건 내가 만든 프로젝트 안의 Package.json 예시이다. 예시를 바탕으로 각 필드가 어떤 의미를 가지고 있는지 살펴보자.

{
  "name": "04-01-rest-api-with-express",
  "version": "1.0.0",
  "main": "index.js",
  "license": "MIT",
  "type": "module",
  "scripts": {
    "dev": "nodemon index.js"
  },
  "dependencies": {
    "coolsms-node-sdk": "^2.0.1",
    "cors": "^2.8.5",
    "dotenv": "^16.0.1",
    "express": "^4.18.1",
    "nodemailer": "^6.7.7",
    "nodemon": "^2.0.19",
    "swagger-jsdoc": "^6.2.1",
    "swagger-ui-express": "^4.4.0"
  }
}

name

  • 프로젝트의 이름. 반드시 있어야하는 항목이다.
  • name은 214자보다 짧은 한 단어여야하고 소문자로 작성되어야 한다.
  • -(하이픈)이나 _(언더바)를 포함할 수 있다.

version

  • 프로젝트의 버전. 반드시 있어야하는 항목이다.
  • [Major].[Minor].[Patch] 의 형태를 따른다.

main

  • 패키지의 진입점이 되는 모듈의 ID이다.
  • 패키지 root의 상대경로로 지정해야 한다. 지정하지 않은 경우 위와 같이 root폴더의 index.js로 기본값이 설정된다.

license

  • 배포한 패키지에 대해 패키지 사용자가 이를 사용하는데 어떤 권한이나 제한 사항이 있는지 알기 위해 명시한다.

type

  • Node.js가 모든 .js파일에서 사용하는 모듈 포멧을 정의한다.
  • Node.js에서 ES모듈을 적용하려면 위와 같이 "type": "module"로 설정한다.

    표현 방식이 두 가지가 있는데, 각 방식에 따라 type이 module일 때는 import, commonjs일 때는 require를 사용하여 패키지를 지정해줘야 한다.

scripts

  • 프로젝트에 자주 실행해야 하는 명령어를 scripts로 작성해두면 npm명령어로 실행 가능하다.
  • 위에서 나는 dev라는 명령어를 추가하여 nodemon으로 서버를 키고 있다.
"scripts": { "dev": "nodemon index.js" }

dependencies

  • 프로젝트 의존성 관리를 위한 부분이다. 이 프로젝트가 어떤 확장 모듈을 요구하는 지 명세되어 있다.
  • 애플리케이션을 설치할 때 이 내용을 참조하여 필요한 확장 모듈을 자동으로 설치한다. 따라서 개발한 애플리케이션이 특정한 확장 모듈을 사용한다면 여기에 명시가 되어있어야 한다.
  • 이 필드를 이용하면 협업을 할 때 팀 내에서 동일한 개발환경으로 빠르게 구축할 수 있다.

참고

profile
코딩은 역시 재밌군

0개의 댓글