수색…


비고

다음과 같이 package.json 을 만들 수 있습니다.

npm init

라이센스 식별자를 포함하여 프로젝트에 대한 기본 사실을 묻습니다.

기본 프로젝트 정의

{
    "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
  • 로컬 경로 : 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

패키지의 고유 이름이며 소문자로 사용해야합니다. 이 속성은 필수이며 패키지가 없으면 패키지가 설치되지 않습니다.

  1. 이름은 214 자 이하 여야합니다.
  2. 이름은 점이나 밑줄로 시작할 수 없습니다.
  3. 새 패키지에는 이름에 대문자가 없어야합니다.
version

패키지의 버전은 Semantic Versioning (semver)에 의해 지정됩니다. 어떤 버전 번호가 MAJOR.MINOR.PATCH로 쓰여지고 다음과 같이 증가한다고 가정합니다 :

  1. 호환되지 않는 API 변경 사항을 만들 때 MAJOR 버전
  2. 하위 버전과 호환되는 기능을 추가하면 MINOR 버전
  3. 이전 버전과 호환되는 버그 수정을 할 때의 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 룰 파일과 함께 작동합니다.

출처



Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow