[NPM] 패키지 배포

들어가기에 앞서

이 글은 가장 간단하게 패키지를 생성하고 테스트(생략가능)하고 배포하는 기본적인 방법을 다룹니다. hierarchy-data 라는 패키지를 생성해서 배포하도록 하겠습니다. github에 동명의 리포지토리가 생성하여 사용합니다(생략해도 상관없습니다).

필요한 것

npm 패키지 생성

패키지를 만들 디렉토리를 만들고 해당 폴더로 이동합니다.

mkdir hierarchy-data
cd hierarchy-data

아래 명령어를 사용하여 패키지를 초기화합니다.

npm init

패키지의 기본적인 정보를 입력합니다. 입력하지 않고 엔터를 누르면 괄호안의 기본값이 적용됩니다.

package name: (hierarchy-data)
version: (1.0.0) 0.0.1
description: handle hierarchy data easily
entry point: (index.js)
test command: jest
git repository: https://github.com/woogie-real/hierarchy-data.git
keywords: hierarchy, tree
author: woogiereal
license: (ISC)

모든 단계를 마치자 아래와 같은 package.json 파일이 생성되었습니다.

{
  "name": "hierarchy-data",
  "version": "0.0.1",
  "description": "handle hierarchy data easily",
  "main": "index.js",
  "scripts": {
    "test": "jest"
  },
  "repository": {
    "type": "git",
    "url": "git+https://github.com/woogie-real/hierarchy-data.git"
  },
  "keywords": [
    "hierarchy",
    "tree"
  ],
  "author": "woogiereal",
  "license": "ISC",
  "bugs": {
    "url": "https://github.com/woogie-real/hierarchy-data/issues"
  },
  "homepage": "https://github.com/woogie-real/hierarchy-data#readme"
}

이제 파일을 만들어 코드를 작성합니다. 파일명은 패키지의 entry point로 지정한 것을 사용합니다. 본인이 구현하고자 하는 기능을 만듭니다(아래의 class는 예시입니다).

// index.js

class HierarchyData {
  ...
}

module.exports = HierarchyData;

npm 패키지 테스트

이 단계는 생략해도 무방합니다.

저는 jest를 사용하도록 하겠습니다. 테스트 단계에만 필요한 패키지이기 때문에 -D 옵션을 사용합니다.

npm i -D jest

index.test.js 라는 파일을 생성합니다. jest 테스트 스크립트 작성방법은 공식문서를 참고해 주세요. 테스트 실행은 아래 명령어를 사용합니다.

npm run test

npm 패키지 배포

터미널에서 패키지를 배포하기 위해 npm에 로그인을 합니다.

npm login

로그인이 정상적으로 완료 되었는지는 아래 명령어를 사용하여 확인할 수 있습니다.

npm whoami

로그인이 완료되면 아래 명령어를 통해 배포합니다.

npm publish

배포가 완료되면 npm에서 확인이 가능합니다.

links

social