NPM

npm은 재사용 가능한 코드 모듈 및 패키지 목록이 많은 JavaScript용 패키지 매니저이다.
만약 당신이 프로젝트에서 문제가 발생하여 그 문제를 해결해야 할 상황에 놓이게 된다. 당신은 몇 가지 코드를 수정해서 이 문제를 해결하고 다른 프로젝트에서 일하기 시작했는데 그 프로젝트에서 똑같은 문제에 직면하게 된다. 따라서 코드를 다시 사용하기로 결정했다.
하지만 복사 및 붙여 넣기는 코드를 확장하거나 유지할 수 없기 때문에 코드를 재사용하는 좋은 방법이 아니다. 이러한 경우에 npm과 같은 패키지 매니저가 도움이 된다. 그들은 우리가 반복적으로 재사용 할 수있는 모듈을 생성/사용/버전화 할 수 있게 해준다. npm은 package.json 파일의 도움으로 많은 것을 할 수 있게 해준다.

package.json

이 파일에는 프로젝트에 대한 많은 메타 데이터가 포함될 수 있다. 하지만 대부분 두 가지 용도로 사용된다.

  • 프로젝트의 종속성 관리
  • 프로젝트 생성과 관련하여 빌드 생성, 테스트 및 기타 실행에 도움이 되는 스크립트

package.json 생성

npm init 명령어를 실행하면 프로젝트에 대한 몇 가지 정보를 입력하라고 나오는데, 생성된 package.json을 살펴보면 다음과 같다.

{
  "name": "npm-example",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "",
  "license": "ISC"
}

package.json 요소별 정리

name

package.json에서 가장 중요한 field는 nameversion 이다. nameversion을 통해 패키지의 고유한 식별자를 형성한다. 따라서 nameversion은 필수항목이다. 만약 패키지가 변경되면 version이 변경된다.
* 패키지를 공개할 것이 아니라면 이름 및 버전 필드는 선택 사항이다.

Some rules:

  • name은 214자 이하 여야 한다. 이는 scoped packages의 scope를 포함한다.
  • name은 점이나 밑줄로 시작할 수 없습니다.
  • name에 대문자를 사용할 수 없다.
  • name은 URL, 명령 행의 인수 및 폴더 이름의 일부가 된다. 따라서 name에는 URL에 입력되었을 때 안전하지 않은 문자를 사용할 수 없다.

Some tips:

코어 노드 모듈과 동일한 이름을 사용하지 마십시오. 이름에 “js”또는 “node”를 넣지 마십시오. package.json 파일을 작성 중이므로 “js”라고 가정하고 “engines”필드를 사용하여 엔진을 지정할 수 있습니다. (아래 참조). 이름은 아마도 require ()의 인수로 전달 될 것이므로, 짧아야하지만 합리적으로 설명이 가능해야합니다. npm 레지스트리를 검사하여 그 이름의 항목이 있는지 확인할 수 있습니다. https://www.npmjs.com/ 선택적으로 이름 앞에 범위를 붙일 수 있습니다 (예 : @ myorg / mypackage. 자세한 내용은 npm-scope를 참조하십시오.

version

패키지를 게시하려는 경우 package.json의 가장 중요한 사항은 이름과 버전 필드가 필요할 때입니다. 이름과 버전은 함께 완전히 고유 한 식별자를 형성합니다. 패키지가 변경되면 버전이 변경됩니다. 패키지를 공개 할 계획이 없으면 이름 및 버전 필드는 선택 사항입니다.

버전은 node-semver에 의해 분석 가능해야하며, npm은 종속성으로 번들됩니다. (npm은 자신을 사용하기 위해 semver를 설치합니다.)

semver의 버전 번호와 범위에 대한 자세한 정보.

description

description에는 문자열로 설명을 넣는다. 이것은 사람들이 npm 검색에 나열된대로 패키지를 발견하는 데 도움이됩니다.

keywords

키워드를 입력하십시오. 문자열 배열입니다. 이렇게하면 사람들이 npm 검색에 나열된대로 패키지를 발견하는 데 도움이됩니다.

homepage

프로젝트 홈페이지로 연결되는 URL입니다.

"homepage": "https://github.com/owner/project#readme"

bugs

프로젝트 이슈 트래커 및 / 또는 문제가보고되어야 할 이메일 주소에 대한 URL입니다. 이는 귀하의 패키지에 문제가있는 사람들에게 도움이됩니다.

다음과 같이 보입니다.

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

하나 또는 둘 모두의 값을 지정할 수 있습니다. url 만 제공하려는 경우 “bugs”값을 객체 대신 간단한 문자열로 지정할 수 있습니다.

URL이 제공되면 npm bugs 명령에 의해 사용됩니다.

license