npm에 내 모듈 올리기

구름미각·2025년 1월 2일
0
post-thumbnail

어느 날 문득 npm에 간단한 모듈을 만들고 싶어진 나.

npm에 의존은 하고 있었지만 막상 내 코드는 올려본 적이 없었다.
그래서 한 번 작게 나마 npm의 정식 이용자가 되기 위해서 위대한 첫 걸음을 때고 만다.

그 패키지는 다름이 아닌 is-even 패키지 였다.
https://www.npmjs.com/package/@kimgh06/is-even?activeTab=readme

npm 패키지 만드는 법: is-even 패키지 만들기

npm은 JavaScript 개발자들이 코드를 재사용하고 공유할 수 있도록 해주는 강력한 도구임. 이번 글에서는 님들이 직접 is-even 패키지를 만들어 배포하는 과정을 단계별로 정리해봤음. 이 과정을 따라 하면 나만의 패키지를 만들어 전 세계 개발자들과 공유할 수 있음.


1. Node.js 설치

먼저 Node.js가 설치되어 있어야 함. Node.js를 설치하면 npm도 자동으로 설치됨.

Node.js 설치 확인

node -v
npm -v

위 명령어로 Node.js와 npm 버전을 확인하셈. 설치되어 있지 않다면 Node.js 공식 웹사이트에서 다운로드하여 설치하셈.


2. 프로젝트 디렉터리 생성 및 초기화

새로운 패키지를 만들 디렉터리를 생성한 후 초기화함.

mkdir is-even
cd is-even
npm init

npm init 실행 중에 이름, 버전, 설명 등을 입력하거나, 기본값으로 초기화하려면 npm init -y를 사용할 수 있음. 초기화가 완료되면 package.json 파일이 생성됨.


3. 패키지 코드 작성

이제 패키지의 핵심 기능을 구현하면 됨. is-even 패키지는 숫자가 짝수인지 여부를 판단하는 간단한 기능을 제공함.

코드 예제

// index.js
function isEven(number) {
    if (typeof number !== 'number') {
        throw new Error('Input must be a number');
    }
    return number % 2 === 0;
}

module.exports = isEven;

위 코드는 입력된 숫자가 짝수인지 확인하여 true 또는 false를 반환하는 함수임.


4. 불필요한 파일 제외 설정

배포에 필요하지 않은 파일은 .gitignore.npmignore 파일에 추가하면 됨.

.gitignore 예시

node_modules/
dist/

.gitignore는 Git에서 제외할 파일을 설정함.

.npmignore 예시

node_modules/
test/

.npmignore는 npm 배포 시 포함되지 않을 파일을 설정함. .npmignore가 없으면 .gitignore 설정이 사용됨.


5. 패키지 이름과 버전 관리

package.jsonname 필드는 전역적으로 고유해야 함. 이미 사용 중인 이름은 사용할 수 없으니 npm Registry에서 확인하셈.

또한, 버전 관리는 Semantic Versioning 규칙을 따름.

  • Major: 호환되지 않는 변경 사항.
  • Minor: 새로운 기능 추가.
  • Patch: 버그 수정.

6. README 작성

README.md 파일을 작성하여 패키지의 목적, 사용 방법, 예제를 설명하셈. 이는 사용자들에게 중요한 참고 자료가 됨.

README.md 예시

## is-even

`is-even`은 숫자가 짝수인지 확인하는 간단한 JavaScript 유틸리티 라이브러리입니다.

### 설치
```bash
npm install @your-username/is-even

사용법

const isEven = require('@your-username/is-even');

console.log(isEven(2)); // true
console.log(isEven(3)); // false

7. 패키지 테스트

테스트 코드 작성

// test.js
const isEven = require('./index');

console.log(isEven(2)); // true
console.log(isEven(3)); // false
console.log(isEven('4')); // Error: Input must be a number

테스트 실행

node test.js

테스트를 통해 코드가 의도대로 동작하는지 확인하셈.


8. npm 로그인

패키지를 배포하려면 먼저 npm에 로그인해야 함.

npm login

로그인 후 계정 정보를 확인하려면 npm whoami 명령어를 사용하셈.


9. 패키지 배포

배포 전 준비

package.jsonfiles 필드나 .npmignore를 설정하여 필요한 파일만 배포함.

배포 명령 실행

npm publish

배포가 완료되면 npm Registry에서 패키지를 확인할 수 있음.


10. 패키지 업데이트

수정된 내용을 배포하려면 버전을 증가시키고 다시 배포함.

npm version patch
npm publish

버전 관리와 업데이트를 체계적으로 진행하면 사용자들이 안정적으로 패키지를 사용할 수 있음.


11. 오류 해결 방법

이름 중복 오류

npm publish 시 "package name already exists" 오류가 발생하면, 다음과 같이 해결하면 됨:
1. 고유한 패키지 이름으로 변경함.
2. 네임스페이스를 추가하여 이름 충돌을 방지함. 예를 들어:

npm init --scope=@your-username

이 방식으로 패키지 이름을 @your-username/your-package 형태로 설정할 수 있음.

버전 중복 오류

"previously published version" 오류가 발생하면, package.json의 버전을 업데이트하셈.
1. 다음 명령어를 사용하여 버전을 증가시킴:

npm version patch

또는 majorminor로 원하는 수준에서 버전을 증가시킬 수 있음.
2. 업데이트 후 다시 배포함:

npm publish

내가 만든 패키지:
https://www.npmjs.com/package/@kimgh06/is-even

마무리

자 이제 npm 패키지를 만드는 법을 알았으니 원하는 npm 패키지를 만들어서 배포하는 경험을 가지면 좋겠다.

profile
(돈과 인맥을 만들어 나가는)학생 개발자

0개의 댓글