본문 바로가기

Node

package.json이란?

npm이나 yarn을 사용하다보면 package.json을 볼 수 있다. package.json은 무엇일까???

프로젝트가 의존하는 패키지들을 관리해주는 파일이다.

이외에도 여러 쓰임이 있지만, 가장 중요한 건 이거다.

 

package.json은 여러가지 필드들로 구성된다.

{
  "name": "nuxt-project",
  "version": "1.0.0",
  "author": "JinYeongKim",
  "scripts": {
    "dev": "nuxt",
    "build": "nuxt build",
    "start": "nuxt start"
  },
  "dependencies": {
    "core-js": "^3.8.3",
    "nuxt": "^2.14.12"
  },
  "devDependencies": {
    "@nuxtjs/eslint-config": "^5.0.0",
    "@nuxtjs/eslint-module": "^3.0.2",
    "@nuxtjs/stylelint-module": "^4.0.0",
  }
}

가장 위에 있는 name과 version이 보인다. 이 두 필드는 package.json을 작성할 때 반드시 요구되는 필드이다.

name에는 package의 이름을 적으면 된다. 소문자로만 작성 가능하고, 특수문자는 언더바와 하이푼이 사용가능하다.

version에는 version을 적으면 된다. version은 0.0,0의 형식으로 적어줘야 한다.

다음으로 author라는 필드가 있다. author에는 작성자의 정보를 적어주면 된다.

형식은 Name <email@email.com> (http://site.com) 이런 식으로 해주면 된다.

scripts에는 수상하고 무서운 것들이 많이 보인다. scripts는 수행할 명령을 명시해놓는 곳이다. 

yarn을 통해 package.json을 만들었다고 가정하겠다.

그 후 터미널에 yarn dev라는 명령어를 실행하면 terminal에 nuxt라는 명령어를 친 것과 똑같이 동작하게 된다.

dependencies에는 해당 애플리케이션에서 의존하는 패키지들의 모임이다. 개발과 배포 시 모두 사용되는 것들이다.

반면 devDependencies는 개발 시에만 필요한 패키지들의 모임으로 배포 시에는 제외된다.

 

이 package.json은 npm init이나 yarn init 명령어를 수행하면 볼 수 있다.

우리는 package.json을 통해 우리가 필요한 패키지들과 버전을 손쉽게 관리할 수 있다.

참고로 내가 말한 형식들은 npm 공식 문서에 명시되있는 것이다!!!!