Node.js
package.json
수색…
비고
기본 프로젝트 정의
{
"name": "my-project",
"version": "0.0.1",
"description": "This is a project.",
"author": "Someone <[email protected]>",
"contributors": [{
"name": "Someone Else",
"email": "[email protected]"
}],
"keywords": ["improves", "searching"]
}
들 | 기술 |
---|---|
이름 | 패키지를 설치할 필수 필드. 소문자, 공백없이 단일 단어가 필요합니다. (대시 및 밑줄 허용) |
번역 | 의미있는 버전 관리를 사용하여 패키지 버전에 필요한 필드. |
기술 | 프로젝트에 대한 간단한 설명 |
저자 | 패키지 작성자를 지정합니다. |
기고가 | 각각의 제공자에 대해 하나씩 객체의 배열 |
키워드 | 문자열 배열, 이는 사람들이 패키지를 찾는 데 도움이 될 것입니다. |
종속성
"dependencies": { "module-name": "0.1.0"}
- exact :
0.1.0
은 특정 버전의 모듈을 설치합니다. - 최신 부 버전 :
^0.1.0
은 최신 부 버전을 설치합니다 (예 :0.2.0
). 그러나 상위 버전의 모듈 (예 :1.0.0
은 설치하지 않습니다. - 최신 패치 :
0.1.x
또는~0.1.0
은 최신 패치 버전 (예 :0.1.4
)을 설치하지만 상위 버전 또는 부 버전 (예 :0.2.0
또는1.0.0
의 모듈은 설치하지 않습니다. - wildcard :
*
는 모듈의 최신 버전을 설치합니다. - git 저장소 : 다음은 git repo의 master 브랜치에서 tarball을 설치합니다.
#sha
,#tag
또는#branch
도 제공 할 수 있습니다.- GitHub :
user/project
또는user/project#v1.0.0
- url :
git://gitlab.com/user/project.git
또는git://gitlab.com/user/project.git#develop
- GitHub :
- 로컬 경로 :
file:../lib/project
패키지를 package.json에 추가 한 후 터미널의 프로젝트 디렉토리에 npm install
명령을 사용하십시오.
devDependencies
"devDependencies": {
"module-name": "0.1.0"
}
스타일 지정 프록시를 테스트하는 것처럼 개발에만 필요한 종속성에 대해 프로덕션 모드에서 "npm install"을 실행할 때 이러한 종속성은 설치되지 않습니다.
스크립트
실행될 수 있거나 다른 스크립트 전후에 실행될 수있는 스크립트를 정의 할 수 있습니다.
{
"scripts": {
"pretest": "scripts/pretest.js",
"test": "scripts/test.js",
"posttest": "scripts/posttest.js"
}
}
이 경우 다음 명령 중 하나를 실행하여 스크립트를 실행할 수 있습니다.
$ npm run-script test
$ npm run test
$ npm test
$ npm t
미리 정의 된 스크립트
스크립트 이름 | 기술 |
---|---|
미리 출판하다 | 패키지가 게시되기 전에 실행하십시오. |
게시, 게시 후 게시 | 패키지가 게시 된 후 실행하십시오. |
사전 설치 | 패키지가 설치되기 전에 실행하십시오. |
설치, 사후 설치 | 패키지가 설치된 후 실행하십시오. |
사전 설치 제거, 제거 | 패키지를 제거하기 전에 실행하십시오. |
사후 설치 | 패키지를 제거한 후 실행하십시오. |
프리 버전, 버전 | 패키지 버전 이전에 실행하십시오. |
반역 | 패키지 버전을 범프 한 후에 실행하십시오. |
예비 테스트, 테스트, 사후 테스트 | npm test 명령으로 실행 |
프리 스탠드, 정지, 포스트 스톱 | npm stop 명령으로 실행 |
사전 시작, 시작, 사후 시작 | npm start 명령으로 실행 |
prerestart, 다시 시작, postrestart | npm restart 명령으로 실행 |
사용자 정의 스크립트
사전 정의 된 스크립트를 사용하는 것과 같은 방법으로 자신의 스크립트를 정의 할 수도 있습니다.
{
"scripts": {
"preci": "scripts/preci.js",
"ci": "scripts/ci.js",
"postci": "scripts/postci.js"
}
}
이 경우 다음 명령 중 하나를 실행하여 스크립트를 실행할 수 있습니다.
$ npm run-script ci
$ npm run ci
사용자 정의 스크립트는 위의 예와 같이 사전 및 사후 스크립트도 지원합니다.
확장 된 프로젝트 정의
추가 속성 중 일부는 repository
, bugs
또는 homepage
와 같은 npm 웹 사이트에서 파싱되며이 패키지의 infobox에 표시됩니다
{
"main": "server.js",
"repository" : {
"type": "git",
"url": "git+https://github.com/<accountname>/<repositoryname>.git"
},
"bugs": {
"url": "https://github.com/<accountname>/<repositoryname>/issues"
},
"homepage": "https://github.com/<accountname>/<repositoryname>#readme",
"files": [
"server.js", // source files
"README.md", // additional files
"lib" // folder with all included files
]
}
들 | 기술 |
---|---|
본관 | 이 패키지의 입력 스크립트. 이 스크립트는 사용자가 패키지를 요구할 때 리턴됩니다. |
저장소 | 공개 저장소의 위치 및 유형 |
버그 | 이 패키지의 버그 트래커 (예 : github) |
홈페이지 | 이 패키지 또는 일반 프로젝트의 홈페이지 |
파일들 | 사용자가 npm install <packagename> 할 때 다운로드해야하는 파일 및 폴더 목록 npm install <packagename> |
package.json 둘러보기
대개 프로젝트 루트에있는 package.json
파일에는 npm install
실행할 때 npm에서 설치할 종속성 목록과 함께 응용 프로그램이나 모듈에 대한 메타 데이터가 들어 있습니다.
명령 프롬프트에서 package.json
을 초기화하려면 npm init
을 입력하십시오.
기본값을 사용하여 package.json
을 만들려면 다음을 사용합니다.
npm init --yes
# or
npm init -y
패키지를 설치하고 package.json
저장하려면 다음을 사용하십시오.
npm install {package name} --save
속기 표기법을 사용할 수도 있습니다.
npm i -S {package name}
NPM 별칭 -S
는 --save
및 -D
를 --save-dev
로 사용하여 제작 또는 개발 종속성을 각각 저장합니다.
패키지는 의존성에 나타납니다. 당신이 사용하는 경우 --save-dev
대신 --save
패키지는 devDependencies에 나타납니다.
package.json
중요한 속성 :
{
"name": "module-name",
"version": "10.3.1",
"description": "An example module to illustrate the usage of a package.json",
"author": "Your Name <[email protected]>",
"contributors": [{
"name": "Foo Bar",
"email": "[email protected]"
}],
"bin": {
"module-name": "./bin/module-name"
},
"scripts": {
"test": "vows --spec --isolate",
"start": "node index.js",
"predeploy": "echo About to deploy",
"postdeploy": "echo Deployed",
"prepublish": "coffee --bare --compile --output lib/foo src/foo/*.coffee"
},
"main": "lib/foo.js",
"repository": {
"type": "git",
"url": "https://github.com/username/repo"
},
"bugs": {
"url": "https://github.com/username/issues"
},
"keywords": [
"example"
],
"dependencies": {
"express": "4.2.x"
},
"devDependencies": {
"assume": "<1.0.0 || >=2.3.1 <2.4.5 || >=2.5.2 <3.0.0"
},
"peerDependencies": {
"moment": ">2.0.0"
},
"preferGlobal": true,
"private": true,
"publishConfig": {
"registry": "https://your-private-hosted-npm.registry.domain.com"
},
"subdomain": "foobar",
"analyze": true,
"license": "MIT",
"files": [
"lib/foo.js"
]
}
중요한 속성에 대한 정보 :
name
패키지의 고유 이름이며 소문자로 사용해야합니다. 이 속성은 필수이며 패키지가 없으면 패키지가 설치되지 않습니다.
- 이름은 214 자 이하 여야합니다.
- 이름은 점이나 밑줄로 시작할 수 없습니다.
- 새 패키지에는 이름에 대문자가 없어야합니다.
version
패키지의 버전은 Semantic Versioning (semver)에 의해 지정됩니다. 어떤 버전 번호가 MAJOR.MINOR.PATCH로 쓰여지고 다음과 같이 증가한다고 가정합니다 :
- 호환되지 않는 API 변경 사항을 만들 때 MAJOR 버전
- 하위 버전과 호환되는 기능을 추가하면 MINOR 버전
- 이전 버전과 호환되는 버그 수정을 할 때의 PATCH 버전
description
프로젝트에 대한 설명. 짧고 간결하게 유지하십시오.
author
이 패키지의 저자.
bin
패키지에서 바이너리 스크립트를 노출하는 데 사용되는 객체입니다. 객체는 키가 바이너리 스크립트의 이름이고 값이 스크립트의 상대 경로라고 가정합니다.
이 등록 정보는 CLI (명령 행 인터페이스)를 포함하는 패키지에서 사용됩니다.
script
추가 npm 명령을 표시하는 객체입니다. 객체는 키가 npm 명령이고 값이 스크립트 경로라고 가정합니다. 이러한 스크립트는 npm run {command name}
또는 npm run-script {command name}
을 실행할 때 실행될 수 있습니다.
명령 행 인터페이스를 포함하고 로컬로 설치된 패키지는 상대 경로없이 호출 될 수 있습니다. 따라서 ./node-modules/.bin/mocha
를 호출하는 대신 mocha
직접 호출 할 수 있습니다.
main
패키지의 기본 진입 점. 노드에서 require('{module name}')
를 호출하면 require('{module name}')
실제 파일이됩니다.
주 파일을 요구해도 부작용이 발생하지 않는다는 것이 강력히 권고됩니다. 예를 들어, 주 파일을 요구하면 HTTP 서버를 시작하거나 데이터베이스에 연결하면 안됩니다. 대신 주 스크립트에서 exports.init = function () {...}
과 같은 것을 만들어야합니다.
keywords
패키지를 설명하는 키워드 배열입니다. 이들은 사람들이 당신의 패키지를 찾는 데 도움이 될 것입니다.
devDependencies
이것들은 모듈의 개발과 테스트만을위한 의존성입니다. 종속성은 NODE_ENV=production
환경 변수가 설정되어 있지 않으면 자동으로 설치됩니다. 이 경우에도 npm install --dev
패키지를 계속 사용할 수 있습니다. npm install --dev
peerDependencies
이 모듈을 사용하는 경우 peerDependencies는이 모듈과 함께 설치해야하는 모듈을 나열합니다. 예를 들어, moment-timezone
는 직접 require("moment")
하지 않는 require("moment")
에도 순간적으로 플러그인이므로 moment
과 함께 설치해야합니다.
preferGlobal
이 페이지가 npm install -g {module-name}
사용하여 전역으로 설치되기를 선호한다는 것을 나타내는 속성. 이 등록 정보는 CLI (명령 행 인터페이스)를 포함하는 패키지에서 사용됩니다.
다른 모든 상황에서는이 속성을 사용하지 마십시오.
publishConfig
publishConfig는 모듈 게시에 사용될 구성 값이있는 객체입니다. 설정된 구성 값은 기본 npm 구성보다 우선합니다.
publishConfig
의 가장 보편적 인 사용법은 패키지를 개인용 npm 레지스트리에 게시하여 npm의 이점을 여전히 가지고 있지만 개인 패키지 용입니다. 이것은 레지스트리 키의 값으로 개인 npm의 URL을 설정하기 만하면됩니다.
files
이것은 게시 된 패키지에 포함 할 모든 파일의 배열입니다. 파일 경로 또는 폴더 경로를 사용할 수 있습니다. 폴더 경로의 모든 내용이 포함됩니다. 이렇게하면 배포 할 올바른 파일 만 포함하여 패키지의 전체 크기가 줄어 듭니다. 이 필드는 .npmignore
룰 파일과 함께 작동합니다.