npm에 의존은 하고 있었지만 막상 내 코드는 올려본 적이 없었다.
그래서 한 번 작게 나마 npm의 정식 이용자가 되기 위해서 위대한 첫 걸음을 때고 만다.
그 패키지는 다름이 아닌 is-even 패키지 였다.
https://www.npmjs.com/package/@kimgh06/is-even?activeTab=readme
npm
은 JavaScript 개발자들이 코드를 재사용하고 공유할 수 있도록 해주는 강력한 도구임. 이번 글에서는 님들이 직접 is-even
패키지를 만들어 배포하는 과정을 단계별로 정리해봤음. 이 과정을 따라 하면 나만의 패키지를 만들어 전 세계 개발자들과 공유할 수 있음.
먼저 Node.js가 설치되어 있어야 함. Node.js를 설치하면 npm
도 자동으로 설치됨.
node -v
npm -v
위 명령어로 Node.js와 npm
버전을 확인하셈. 설치되어 있지 않다면 Node.js 공식 웹사이트에서 다운로드하여 설치하셈.
새로운 패키지를 만들 디렉터리를 생성한 후 초기화함.
mkdir is-even
cd is-even
npm init
npm init
실행 중에 이름, 버전, 설명 등을 입력하거나, 기본값으로 초기화하려면 npm init -y
를 사용할 수 있음. 초기화가 완료되면 package.json
파일이 생성됨.
이제 패키지의 핵심 기능을 구현하면 됨. 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
를 반환하는 함수임.
배포에 필요하지 않은 파일은 .gitignore
와 .npmignore
파일에 추가하면 됨.
.gitignore
예시node_modules/
dist/
.gitignore
는 Git에서 제외할 파일을 설정함.
.npmignore
예시node_modules/
test/
.npmignore
는 npm 배포 시 포함되지 않을 파일을 설정함. .npmignore
가 없으면 .gitignore
설정이 사용됨.
package.json
의 name
필드는 전역적으로 고유해야 함. 이미 사용 중인 이름은 사용할 수 없으니 npm Registry에서 확인하셈.
또한, 버전 관리는 Semantic Versioning 규칙을 따름.
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
// 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
테스트를 통해 코드가 의도대로 동작하는지 확인하셈.
패키지를 배포하려면 먼저 npm
에 로그인해야 함.
npm login
로그인 후 계정 정보를 확인하려면 npm whoami
명령어를 사용하셈.
package.json
의 files
필드나 .npmignore
를 설정하여 필요한 파일만 배포함.
npm publish
배포가 완료되면 npm Registry에서 패키지를 확인할 수 있음.
수정된 내용을 배포하려면 버전을 증가시키고 다시 배포함.
npm version patch
npm publish
버전 관리와 업데이트를 체계적으로 진행하면 사용자들이 안정적으로 패키지를 사용할 수 있음.
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
또는 major
나 minor
로 원하는 수준에서 버전을 증가시킬 수 있음.
2. 업데이트 후 다시 배포함:
npm publish
내가 만든 패키지:
https://www.npmjs.com/package/@kimgh06/is-even
자 이제 npm 패키지를 만드는 법을 알았으니 원하는 npm 패키지를 만들어서 배포하는 경험을 가지면 좋겠다.