자바 스크립트 또는 관련 프레임 워크 프로젝트에서 작업한 적이 있다면 package.json이라는 파일을 발견 하셨을 것입니다.
이 파일이 우리 프로젝트에 포함 된 이유와 필요한 이유가 궁금 할 것입니다 ?.
이 파일의 주요 목적은 프로젝트와 관련된 다양한 메타 데이터를 보유하는 것이며, 프로젝트 및 해당 종속성을 식별 할 수 있는 정보를 npm에 제공하는 데 사용됩니다.
package.json 파일을 수동으로 생성하려면 필수 사항이 아닌 여러 질문을 묻는 npm init 명령을 실행해야 합니다. Enter 키를 눌러 완료하면 나중에 변경할 수 있습니다.
이러한 질문에 답하고 싶다면 npm init -y 명령을 실행하여 기본값으로 package.json이라는 파일을 생성 할 수 있습니다.
이 파일에서 npm이 우리에게 제공 한 사용 가능한 옵션 목록을 살펴 보겠습니다.
name
현지에서 일부 프로젝트를 진행하고 있으며 게시 할 계획이라면. 두 가지 중요한 것은 이름과 버전입니다. 둘 다 필수이며 고유해야 합니다.
이름은 프로젝트의 이름을 나타냅니다. 이름을 정의하기 위한 몇 가지 규칙이 있습니다.
version
이 속성은 프로젝트의 버전을 정의하며 의미론적 버전 관리 지침을 따라야 합니다.
예
"version": "1.0.0"
description
이 속성은 프로젝트에 대한 자세한 정보를 제공하는 데 사용되며 사람들이 npm 검색에 나열된 대로 패키지를 검색하는 데 도움이 됩니다.
"description": "A package to work with strings"
keywords
프로젝트와 관련된 문자열 배열입니다. 이렇게 하면 사람들이 키워드 검색을 기반으로 패키지를 찾을 수 있습니다.
"keywords": [
"react",
"Javascript"
]
homepage
이 속성은 프로젝트의 방문 페이지 URL을 제공하는 데 사용됩니다.
"homepage": "https://github.com/owner/project#readme"
license
이 속성은 프로젝트의 라이선스 유형을 나타내며 이 패키지를 제한 없이 다른 사용자가 사용할 수 있는지 여부를 나타냅니다.
bugs
이 속성은 프로젝트 이슈 트래커 및 / 또는 이슈를 보고해야 하는 이메일 주소를 지정하는 데 사용됩니다. 이는 패키지를 사용하는 동안 문제가 발생하는 사람들에게 도움이 될 것입니다.
"bugs":{
"url" : "https://github.com/owner/project/issues",
"email" : "project@hostname.com"
}
people fields: author, contributors
이 속성은 이 프로젝트 개발에 참여하는 기여자의 수를 지정합니다. 저자는 한 사람을 위한 것이고 기여자는 사람들의 배열입니다.
"author": "abc@example.com https://www.abc.com/",
"contributors": [{
"name": "example",
"email": "example@example.com",
"url": "https://www.example.com/#team"
}]
(email and url are optional).
scripts
이 속성에는 패키지 수명주기에서 다양한 시간에 실행되는 명령이 포함되어 있습니다. 값에서 제공하는 다양한 명령을 사용하여 (npm run) 사용할 수 있는 키가 있는 개체를 가져옵니다. 키는 수명주기 이벤트이고 값은 해당 지점에서 실행할 명령입니다.
"scripts":{
"start": "react-scripts start",
"build": "react-scripts build",
"test": "react-scripts test",
"eject": "react-scripts eject",
"lint": "eslint ./"
}
이들은 대부분 개발 중에 사용되는 특정 작업을 실행하는 데 도움이 되는 터미널 명령입니다. npm 스크립트에 대해 자세히 알아보기
dependencies
이것은 파일에서 가장 중요한 키 중 하나이며 이 파일을 사용하는 전체 이유입니다. 이 프로젝트에 사용 된 모든 종속성 (CLI를 통해 설치된 다양한 npm 라이브러리)이 여기에 나열됩니다. 패키지가 npm install로 설치되면 설치 후 종속성 키 아래에 자동으로 추가됩니다.
"dependencies": {
"react": "^17.0.1",
"react-router-dom": "^5.2.0",
"compression": "~1.7.4"
}
Note:
~ 및 ^ 종속성 버전에서 볼 수 있는 것은 의미론적 버전 관리를 따르는 semver에 정의 된 버전 범위에 대한 표기입니다.
devDependencies
일부 패키지는 개발에만 필요하며 프로덕션에는 필요하지 않습니다. 이러한 패키지는 여기에 나열 될 수 있습니다. 예를 들면 eslint 또는 nodemon이 있습니다. 개발 중에 사용할 패키지입니다. devDependency 실행으로 패키지를 설치하려면
npm install --save-dev <packagename>
private
이 속성은 true 또는 false입니다. true로 설정하면 npm에서 게시를 거부합니다.
"private": true
engines
이 속성은 이 프로젝트에서 작동해야 하는 Node 및 기타 명령의 버전을 설정합니다.
"engines": {
"node": ">= 6.0.0",
"npm": ">= 3.0.0",
"yarn": "^0.13.0"
}
browserslist
이 속성은 프로젝트를 지원할 브라우저 (버전과 함께)를 지정합니다. 최신 ES 기능을 사용하는 경우 모든 브라우저에서 지원하는지 확인해야 하며 그렇지 않은 경우 대체 / 폴리 필이 필요합니다. Babel, Autoprefixer 및 기타 도구에서 참조됩니다. 대상 브라우저에 필요한 폴리 필 및 폴백을 추가하려면. 최신 기능이 브라우저에서 지원되는지 여기에서 확인할 수 있습니다.
"browserslist": {
"production": [
">0.2%",
"not dead",
"not op_mini all"
],
"development": [
"last 1 chrome version",
"last 1 firefox version",
"last 1 safari version"
]
}
Note:
0.2 %는 최소 0.2 %의 글로벌 사용량으로 브라우저를 지원하도록 지정합니다. not dead는 지난 24 개월 동안 공식 지원이 없는 브라우저를 제외한다는 의미입니다. 여기에서 browserslist에 대해 자세히 알아볼 수 있습니다.
main
이 속성은 프로젝트의 진입 점을 지정합니다. 누군가 프로젝트를 설치 한 다음 'something'에서 가져 오기를 사용하면 이 키에 이름을 지정한 파일이 가져옵니다. 아무것도 지정하지 않으면 기본적으로 index.js로 설정됩니다.
"main": "src/main.js"
이 package.json 파일은 모든 javascript / node 프로젝트의 핵심이 될 것입니다. 모든 속성이 프로젝트에 적용되는 것은 아니지만 이러한 속성을 사용하여 몇 가지 강력한 이점을 얻을 수 있습니다. package.json 파일의 역할을 이해하는 것은 자바 스크립트 생태계의 중요한 부분이며 더 통찰력 있게 만들 것입니다 !! ?.
https://dev.to/naveenchandar/package-json-file-explained-b94
등록된 댓글이 없습니다.