npm을 통해 내가 만든 오픈소스를 전 세계에 공개하고 싶다면?
이 글에서는npm init부터 실제npm publish까지 전체 배포 과정을 차근차근 안내합니다.
npm 패키지를 배포하려면 먼저 npm 공식 사이트에서 계정을 만들어야 합니다.
npm login
을 입력하면 인증 완료!
mkdir my-awesome-lib
cd my-awesome-lib
npm init
npm init -y를 사용하면 기본 설정으로package.json을 바로 생성합니다.
예를 들어 간단한 유틸 함수 라이브러리를 만들어보겠습니다.
my-awesome-lib/
├── index.js
├── package.json
└── README.md
index.jsexport 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"
바벨/타입스크립트 등을 사용하는 경우 빌드 후 배포 디렉토리를 설정해야 합니다.
.npmignore 설정테스트 코드, .git 폴더 등 배포에 필요 없는 파일을 제외하기 위해 .npmignore를 작성하세요.
node_modules/
tests/
.git/
npm publish
스코프 패키지(
@username/package)인 경우에는 다음처럼 공개 설정을 명시해야 합니다.
npm publish --access public
이제 다른 프로젝트에서 설치할 수 있어요!
npm install my-awesome-lib
import { add } from 'my-awesome-lib';
console.log(add(5, 7)); // 12
package.json 설정npm publish로 배포이제 여러분도 npm 오픈소스 개발자입니다! 🎉
꾸준히 버전 관리하고, issue/PR을 통해 사용자와 소통하면 더 좋은 오픈소스를 만들어갈 수 있어요.