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에 명시된 정보를 통해 프로젝트에 필요한 패키지를 언제든지 다시 설치할 수 있다.
'Node.js' 카테고리의 다른 글
| [Node.js] Node.js란? (0) | 2022.05.26 |
|---|---|
| [Node.js] npm(Node Package Manager) 정리 (0) | 2022.05.26 |
| [Node.js/한줄정리] 모듈(Module) vs 패키지(Package) (0) | 2022.05.15 |
| [Node.js] package.json에서 안쓰는 패키지 삭제하기 (0) | 2022.05.15 |
| [Node.js] npm 명령어 정리 (0) | 2022.05.13 |
댓글