댓글 검색 목록

[Nodejs] Package.json 파일 설명 !!!

페이지 정보

작성자 운영자 작성일 21-07-06 00:21 조회 1,674 댓글 0

자바 스크립트 또는 관련 프레임 워크 프로젝트에서 작업한 적이 있다면 package.json이라는 파일을 발견 하셨을 것입니다.

이 파일이 우리 프로젝트에 포함 된 이유와 필요한 이유가 궁금 할 것입니다 ?.


이 파일의 주요 목적은 프로젝트와 관련된 다양한 메타 데이터를 보유하는 것이며, 프로젝트 및 해당 종속성을 식별 할 수 있는 정보를 npm에 제공하는 데 사용됩니다.


package.json 파일을 수동으로 생성하려면 필수 사항이 아닌 여러 질문을 묻는 npm init 명령을 실행해야 합니다. Enter 키를 눌러 완료하면 나중에 변경할 수 있습니다.


이러한 질문에 답하고 싶다면 npm init -y 명령을 실행하여 기본값으로 package.json이라는 파일을 생성 할 수 있습니다.


이 파일에서 npm이 우리에게 제공 한 사용 가능한 옵션 목록을 살펴 보겠습니다.


name 

현지에서 일부 프로젝트를 진행하고 있으며 게시 할 계획이라면. 두 가지 중요한 것은 이름과 버전입니다. 둘 다 필수이며 고유해야 합니다.

이름은 프로젝트의 이름을 나타냅니다. 이름을 정의하기 위한 몇 가지 규칙이 있습니다.


  1. 214 자 이하 여야 합니다.
  2. 점 (.) 또는 밑줄 (_)로 시작해서는 안됩니다.
  3. 이름에 대문자가 없어야 합니다.
  4. 패키지 이름에는 URL에 안전하지 않은 문자가 포함되어서는 안됩니다 (이름은 URL의 일부가 되므로) 안전하지 않은 문자를 찾으려면 이 링크로 이동하십시오.
  5. 필요한 경우 npm 레지스트리에서 이름을 사용할 수 있는지 여부를 확인할 수 있습니다.

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



댓글목록 0

등록된 댓글이 없습니다.

웹학교 로고

온라인 코딩학교

코리아뉴스 2001 - , All right reserved.