반응형

오늘은 npm package를 만들어서 배포까지 해보도록 하겠습니다.

먼저 npmjs.com에서 계정을 생성해줍니다.

패키지 디렉토리 생성

package.json 파일 생성

{
  "name": "@zsunash/request",
  "version": "0.0.1",
  "description": "Define parameters required by api",
  "main": "dist/index.js",
  "scripts": {
    "test": "npm run build && echo \\"npm package test\\"",
    "build": "npm run build:clean && tsc",
    "prepublishOnly": "npm run build"
  },
  "keywords": [],
  "author": "zsunk@kakao.com",
  "dependencies": {},
  "types": "./dist/index.d.ts",
  "repository": {
    "type": "git",
    "url": "git+https://github.com/zsunkim/npm-packages.git"
  },
  "license": "ISC",
  "bugs": {
    "url": "<https://github.com/zsunkim/npm-packages/issues>"
  },
  "homepage": "<https://github.com/zsunkim/npm-packages#readme>"
}
  • package.json 설정
    • description : 프로젝트(패키지)의 설명 지정 (npm search 사용 시 도움이 됩니다.)
    • homepage : 프로젝트 홈페이지로 연결되는 URL을 지정
    • license : 패키지 사용을 허용하는 방법과 제한 사항을 알 수 있도록 라이센스를 지정
    • main : 프로그램의 기본 진입 점(entry point) 지정
    • files : 패키지가 의존성으로 설치될 때 같이 포함될 파일(디렉터리)들의 배열
    • dependencies : 패키지 배포 시 포함될 의존성 모듈 지정
    • engines : 패키지가 작동하는 Node 버전 지정
    • browser : 클라이언트(client-side) 사용을 위하는 경우 자바스크립트 번들러 또는 구성 요소 도구에 대한 힌트로 제공하기 위해 main 옵션(field) 대신에 사용해야 함.
    • repository : 코드가 존재하는 주소 지정
    • author : 제작자의 이름 지정
    • bugs : 패키지에 문제가 있을 때 보고될 이슈 트래커(추적시스템) 및 이메일 주소 등에 대한 URL을 지정
    • keywords : 프로젝트(패키지)의 키워드를 배열로 지정 (npm search 사용 시 도움이 됩니다.)
    • name : 패키지(모듈)의 고유한 이름






npm init -y : 디폴트로 세팅


npm init : 패키지 이름 설정부터 수동


📌 @zsunash/request : 여기서 zsunash는 scope입니다.

dist 디렉토리 안에 index.d.ts 파일 생성

export interface AlertRequest {
	service: AlertRequestService[];
    ...
}

export enum AlertRequestService {
	...
}

npm login


npm whoami


npm package 배포

npm publish --access public : 누구나 볼 수 있게 배포

배포 확인

패키지 삭제

npm unpublish [@스코프/패키지이름][@버전]
ex) npm unpublish @zsunash/request@1.0.0


삭제 확인

반응형

+ Recent posts