JavaScript
[javaScript] package.json 에 대해서 알아보자.
유병각
2021. 8. 21. 16:09
Package.json 에 대해서 알아보자.
1. package.json 이란??
노드로 확장 모듈을 작성하면 npm 을 통해 중앙 저장소로 배포 할 수 있다. package.json 파일은 배포한 모듈 정보를 담고자 만들어졌지만, 노드로 작성하는 애플리케이션도 package.json 파일을 사용하여 관리 할 수 있다.
꼭 확장 모듈 형태로 배포하기 위한 것이 아니더라도 애플리케이션을 개발할 때 package.json 파일을 이용하면 사용하는 확장 모듈에 대한 의존성 관리가 가능하기 때문에 편리하다.
package.json 파일은 기본적으로 CommonJs 의 명세를 따르며, Json 형식의 파일이다.
- package.json 을 만드는 방법
npm init // package.json 파일을 직접 작성하여 생성 하는 커맨드
npm init -y // package.json 을 default 값으로 설정하여 생성하는 커맨드
- package.json 파일의 구조
{
"name": "notion-user",
"version": "0.1.0",
"private": true,
"dependencies": {
"@testing-library/jest-dom": "^5.11.4",
"@testing-library/react": "^11.1.0",
},
"scripts": {
"start": "react-scripts start",
"build": "react-scripts build",
},
"eslintConfig": {
"extends": [
"react-app",
"react-app/jest"
]
},
"browserslist": {
"production": [
">0.2%",
"not dead",
"not op_mini all"
],
"development": [
"last 1 chrome version",
"last 1 firefox version",
"last 1 safari version"
]
}
}
- package.json 파일에 대한 설명
KEY | VALUE |
name | 프로젝트의 이름 중앙 저장소에 배포할 때 version 과 함께 필수 항목이다. url 로 사용되고, 설치할 때 디랙토리 이름이 되기 때문에 url 이나 디렉터리에서 쓸 수 없는 이름으로 하면 안된다. 대문자를 포함해서는 안되며 require() 함수의 인수로 사용되기 때문에 짧고 알기 쉬운 이름으로 짓는 것이 좋다. |
version | 프로젝트 버전을 정의한다. 3단계 버전을 정의하며, - 로 태그이름을 적을 수 있다. |
description | 프로젝트 설명으로, 문자열을 기술한다. npm search 로 검색된 리스트에 표시되기 때문에 사람들이 패키지를 찾을 때 도움이 된다. |
keywords | description 과 마찬가지로 프로젝트를 검색할 때 참조되는 키워드이다. |
homepage | 프로젝트 홈페이지의 주소이다. url 항목과는 다르며, url 을 설정하면 예상치 못한 작동을 하므로 주의해야한다. |
author | 프로젝트 작성자의 정보로 한 사람만을 지정한다. json 형식으로 name, email, url 옵션을 포함한다. |
contributors | 프로젝트에 참여한 공헌자 정보로, 여러 사람을 배열로 지정 할 수 있다. |
repository | 프로젝트의 소스 코드를 저장한 저장소의 정보이다. |
scripts | 프로젝트에서 자주 실행되는 명령어를 scripts 로 작성해두면 npm 명령어로 실행 가능하다. |
config | 소스 코드에서 config 필드에 있는 값을 환경변수 처럼 사용 할 수 있다. |
private | 이 값을 true 로 사용하면 중앙 저장소로 이동하지 않는다. |
dependencies | 프로젝트의 의존성 관리를 위한 부분이다. 프로젝트가 어떤 확장 모듈을 요구하는지 정리 할 수 있다. 일반적으로 package.json 에서 가장 많은 정보가 입력되는 부분이다. 애플리케이션을 설치할 때 이 내용을 참조하여 필요한 확장 모듈을 자동으로 설치한다. 따라서 개발한 애플리케이션이 특정한 확장 모듈을 사용하면 여기에 꼭 명시해 주어야 한다. npm install 명령어는 여기에 포함된 모든 확장 모듈을 설치하게 되어있다. |
devDependencies | 개발할 때만 의존하는 확장 모듈을 의미 |
engine | 실행 가능한 노드 버전의 범위를 결정한다. |