npm으로 오픈소스 패키지 배포하기

SIMWOOHYUN·2025년 5월 27일

✨ npm으로 오픈소스 패키지 배포하기 (입문 가이드)

npm을 통해 내가 만든 오픈소스를 전 세계에 공개하고 싶다면?
이 글에서는 npm init부터 실제 npm publish까지 전체 배포 과정을 차근차근 안내합니다.


🧾 1. npm 배포 준비하기

✅ npm 계정 만들기

npm 패키지를 배포하려면 먼저 npm 공식 사이트에서 계정을 만들어야 합니다.

npm login
  • username
  • password
  • email

을 입력하면 인증 완료!


📁 2. 프로젝트 초기화

✅ 프로젝트 폴더 생성 & 초기화

mkdir my-awesome-lib
cd my-awesome-lib
npm init

npm init -y를 사용하면 기본 설정으로 package.json을 바로 생성합니다.


💻 3. 라이브러리 파일 작성

예를 들어 간단한 유틸 함수 라이브러리를 만들어보겠습니다.

📦 폴더 구조

my-awesome-lib/
├── index.js
├── package.json
└── README.md

index.js

export function add(a, b) {
  return a + b;
}

export function multiply(a, b) {
  return a * b;
}

ES 모듈 형식 ("type": "module" 필요)

README.md

# my-awesome-lib

간단한 덧셈/곱셈 유틸리티 라이브러리입니다.

## 사용법

```js
import { add, multiply } from 'my-awesome-lib';

console.log(add(2, 3)); // 5

---

## ⚙️ 4. `package.json` 설정

`package.json`에 꼭 필요한 항목:

```json
{
  "name": "my-awesome-lib",
  "version": "1.0.0",
  "description": "간단한 유틸 함수 라이브러리",
  "main": "index.js",
  "type": "module",
  "keywords": ["util", "math", "library"],
  "author": "심우현",
  "license": "MIT"
}

⚠️ 패키지 이름은 고유해야 합니다.

이미 등록된 이름은 사용할 수 없습니다. @username/ 형태의 스코프 패키지를 사용하면 충돌을 피할 수 있어요:

"name": "@yourname/my-awesome-lib"

🚀 5. 패키지 배포

1) 빌드 (선택 사항)

바벨/타입스크립트 등을 사용하는 경우 빌드 후 배포 디렉토리를 설정해야 합니다.

2) .npmignore 설정

테스트 코드, .git 폴더 등 배포에 필요 없는 파일을 제외하기 위해 .npmignore를 작성하세요.

node_modules/
tests/
.git/

3) 배포

npm publish

스코프 패키지(@username/package)인 경우에는 다음처럼 공개 설정을 명시해야 합니다.

npm publish --access public

📦 6. 설치 및 테스트

이제 다른 프로젝트에서 설치할 수 있어요!

npm install my-awesome-lib
import { add } from 'my-awesome-lib';
console.log(add(5, 7)); // 12

✅ 마무리

  • npm 계정 생성
  • 프로젝트 초기화 및 작성
  • package.json 설정
  • npm publish로 배포

이제 여러분도 npm 오픈소스 개발자입니다! 🎉
꾸준히 버전 관리하고, issue/PR을 통해 사용자와 소통하면 더 좋은 오픈소스를 만들어갈 수 있어요.


🔗 참고

0개의 댓글