본문 바로가기
Node.js

[Node.js] package.js 파일 정리

by 메이플 🍁 2022. 5. 26.

package.json이란?

프로젝트 터미널에 npm init 명령어를 실행하면 package.json 파일이 루트 디렉토리에 자동으로 생성된다.

 

package.json에 작성되는 정보는 크게 2개로 나눌 수 있다:

  • 프로젝트의 정보: 현재 프로젝트에 관한 정보를 명시
  • 패키지 버전 정보: 패키지 매니저(npm, yarn)를 통해 설치한 패키지의 목록과 버전 명시

 

package.json 파일 해석

package.json 파일 생성

npm init -y

개발용으로 사용할 parcel bundler 패키지 설치

npm install parcel-bundler -D

패키지를 설치하면 node modules에 해당 패키지가 다운받아진다. node_modules 폴더 안을 확인해보면 설치한 parcel bundler 이외에도 다른 패키지들이 설치된것을 볼 수 있다. 그 이유는 parcel bundler 역시 다른 패키지를 사용하고 있기 때문이다. parcel bundler 패키지의 package.json 파일을 열어보면 parcel bundler 패키지를 사용하기 위해 어떤 다른 패키지가 필요한지 알 수 있다.

프로덕션 환경에서 사용할 패키지 lodash 설치

npm install lodash

package.json 파일안에 있는 정보 해석

  • 프로젝트의 정보: name, version 영역
  • 패키지 버전 정보: dependencies 또는 devDependencies 영역
{
  "name": "test",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "devDependencies": {
    "parcel-bundler": "^1.12.5"
  },
  "dependencies": {
    "lodash": "^4.17.21"
  }
}

1) 프로젝트 정보

  • name: 프로젝트 이름 (영어 소문자, 하이픈(-), 언더스코어(_)만 이름으로 지정할 수 있음)
  • version: 프로젝트의 버전 (시맨틱 버저닝 형식 x.x.x)
  • description: 프로젝트에 대한 상세 설명
  • main: 현재의 패키지를 npm에 업로드할 때 필요한 옵션
  • script: 프로젝트 내부에서 사용할 수 있는 여러 script 명령들
  • keywords: 프로젝트에 관한 키워드
  • author: 프로젝트 소유주 
  • license: 프로젝트 라이센스

2) 패키지 정보

lodash는 프로덕션용으로 설치했기 때문에(-D 플래그가 없이 설치해주었기 때문에) dependencies에 해당 패키지 정보가 명시되어 있다. 반면에 parcel bundler를 설치할때 -D 플래그가 붙은 개발용 패키지로 설치해주었기 때문에 devDependencies에 parcel bundler 패키지가 명시되어 있다. 

  • "dependencies": 프로젝트를 배포할때 웹사이트 동작에 필요한 패키지 (일반 의존성 패키지)
  • "devDependencies": 프로젝트 개발 필요한 패키지 (개발용 의존성 패키지)

 

package.json 장점

node_modules 폴더 안에 있는 패키지가 삭제되어도 언제든지 복구할 수 있다. npm install 명령어를 사용하면 package.json에 명시된 정보를 통해 프로젝트에 필요한 패키지를 언제든지 다시 설치할 수 있다.

 

댓글