들어가기에 앞서
이 글은 가장 간단하게 패키지를 생성하고 테스트(생략가능)하고 배포하는 기본적인 방법을 다룹니다. hierarchy-data 라는 패키지를 생성해서 배포하도록 하겠습니다. github에 동명의 리포지토리가 생성하여 사용합니다(생략해도 상관없습니다).
필요한 것
- npm 계정
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에서 확인이 가능합니다.