Skip to content

packagejson npm

Yongku cho edited this page Nov 1, 2020 · 9 revisions

name

  • 이름은 214자 이하
  • scope가 지정된 패키지의 이름은 점 또는 밑줄로 시작할 수 있다.
    • scope 없이는 허용되지 않는다.
  • 대문자가 없어야 한다.
  • 이름은 URL의 일부, 명령줄의 인수 및 폴더 이름이 되므로 이름은 URL에 안전하지 않는 문자가 포함될 수 없다.
  • Node 모듈의 코어와 같은 이름을 사용하면 안된다.
  • 이름에 js또는 node를 넣으면 안된다. engines에 표시를 한다.

version

버전은 npm과 함께 번들로 제공되는 node-semver로 구문 분석할 수 있어야 한다.

description

프로젝트의 설명을 문자열로 작성한다. npm search로 패키지를 찾을 수 있다.

keyword

프로젝트의 키워드를 문자열의 배열로 작성한다. npm search로 패키지를 찾을 수 있다.

homepage

프로젝트의 URL을 작성한다.

bugs

프로젝트의 이슈 트래커에 대한 URL 및 이슈를 보고해야 하는 이메일 주소를 작성한다.

URL만 작성 가능하다. URL이 제공되면 npm bugs 명령어로 URL로 이동할 수 있다.

{
  "url" : "https://github.com/owner/project/issues",
  "email" : "project@hostname.com"
}

license

패키지에 대한 라이센스를 지정한다. 이상적으로는 [OSI](https://opensource.org/licenses/alphabetical 승인을 받은 것을 선택해야 한다.

author, contributors

author은 한명만 작성한다. contributors는 배열로 여려명을 작성한다. 정보는 name, email, url을 작성한다.

{
  "name" : "Barney Rubble",
  "email" : "b@rubble.com",
  "url" : "http://barnyrubble.tumblr.com/"
}

funding

패키지 개발 자금 지원 방법에 대한 최신 정보를 제공한다.

files

https://docs.npmjs.com/cli/v7/configuring-npm/package-json#files

main

사용자가 해당 패키지를 require("foo")과 같이 사용할 때 진입하는 모듈 정보다. 패키지 폴터의 루트에서 상대경로로 모듈을 지정한다.

browser

모듈이 클라이언트측에서만 사용되도록 의도한 경우 main 대신 browser를 사용해야 한다. Node.js에서 사용할 수 없는 모듈임을 알릴 수 있다.

bin

패키지에 PATH에 설치해서 실행하고 싶은 파일이 있을 것이다. npm은 쉽게 만들 수 있도록 제공한다. bin에 이름과 파일을 매핑하면 패키지가 설치될 때, prefix/bin 또는 ./node_modules/.bin/symlink를 한다.

{
  "bin": {
    "myapp": "./cli.js"
  }
}

man

man 프로그램이 찾을 수 있도록 단일 파일 또는 배열로 지정한다.

directories

https://docs.npmjs.com/cli/v7/configuring-npm/package-json#directories

repository

패키지의 저장소를 작성할 수 있게한다.

"repository": {
  "type" : "git",
  "url" : "https://github.com/npm/cli.git"
}

"repository": {
  "type" : "svn",
  "url" : "https://v8.googlecode.com/svn/trunk/"
}

package.json이 패키지 루트에 없으면 directory를 지정한다.

"repository": {
  "type" : "git",
  "url" : "https://github.com/facebook/react.git",
  "directory": "packages/react-dom"
}

scripts

https://docs.npmjs.com/cli/v7/configuring-npm/package-json#scripts

config

https://docs.npmjs.com/cli/v7/configuring-npm/package-json#config

dependencies

https://docs.npmjs.com/cli/v7/configuring-npm/package-json#dependencies

devDependencies

https://docs.npmjs.com/cli/v7/configuring-npm/package-json#devdependencies

peerDependencies

https://docs.npmjs.com/cli/v7/configuring-npm/package-json#peerdependencies

bundledDependencies

https://docs.npmjs.com/cli/v7/configuring-npm/package-json#bundleddependencies

optionalDependencies

https://docs.npmjs.com/cli/v7/configuring-npm/package-json#optionaldependencies

engines

https://docs.npmjs.com/cli/v7/configuring-npm/package-json#engines

os

https://docs.npmjs.com/cli/v7/configuring-npm/package-json#os

cpu

https://docs.npmjs.com/cli/v7/configuring-npm/package-json#cpu

private

https://docs.npmjs.com/cli/v7/configuring-npm/package-json#private

publishConfig

https://docs.npmjs.com/cli/v7/configuring-npm/package-json#publishconfig

workspaces

https://docs.npmjs.com/cli/v7/configuring-npm/package-json#workspaces

Clone this wiki locally