NPM 마스터 클래스 Ep 5. 전 세계에 내 코드 자랑하기 (패키지 배포)

남이 만든 패키지만 쓰는 건 이제 그만! 내가 만든 유용한 함수나 컴포넌트를 전 세계 개발자들이 쓸 수 있도록 NPM 저장소에 올려봅시다.

---

1. NPM 계정 만들기

먼저 NPM 공식 사이트(npmjs.com)에 가서 회원가입을 해야 합니다.

가입 후 이메일 인증까지 꼭 완료해 주세요.

2. 터미널에서 로그인

터미널을 열고 다음 명령어를 입력합니다.

npm login

아이디, 비밀번호, 이메일을 차례대로 입력하면 로그인이 완료됩니다. (비밀번호는 입력해도 화면에 안 보이니 당황하지 마세요!)

3. 배포 준비하기 (package.json 설정)

배포하기 전에 몇 가지 중요한 설정을 확인해야 합니다.

1. name: 전 세계에서 유일한 이름이어야 합니다. `npm search <이름>`으로 이미 있는지 확인해 보세요.

* 팁: `@내아이디/패키지이름` 형태로 만들면 이름 중복을 피하기 쉽습니다.

2. version: 새 버전을 올릴 때마다 이 숫자를 올려야 합니다.

3. main: 사람들이 내 패키지를 `require`나 `import`했을 때 불러와질 파일을 지정합니다.

{
  "name": "my-awesome-utils",
  "version": "1.0.0",
  "main": "index.js",
  "license": "MIT"
}

4. 비밀 파일 숨기기: .npmignore

깃에 올릴 때 `.gitignore`를 쓰는 것처럼, NPM에 올릴 때도 불필요한 파일(테스트 코드, 설정 파일 등)을 제외해야 합니다.

`.npmignore` 파일을 만들고 제외할 파일들을 적어주세요.

src/
tests/
.eslintrc.js

5. 배포하기!

준비가 끝났다면 대망의 배포 명령어입니다.

npm publish

만약 `@내아이디` 스코프를 사용했다면 `--access public` 옵션을 붙여야 합니다.

npm publish --access public

---

🛠️ 오늘의 미션: 세상에서 제일 간단한 패키지 배포

1. `index.js`에 간단한 함수를 만듭니다.

   exports.hello = () => console.log("Hello from NPM!");
   

2. `package.json`의 이름을 겹치지 않게 짓습니다. (예: `ghshin-hello-test`)

3. `npm publish`로 배포합니다.

4. 다른 폴더에서 `npm install ghshin-hello-test`로 설치해서 실행해 봅니다.

이제 여러분은 오픈소스 기여자(Contributor)가 되셨습니다! 🎉

---

🔗 다음 예고

패키지를 배포하고 관리하다 보면 보안 문제나 버전 충돌이 걱정될 때가 있죠? 마지막 시간엔 "안전하고 빠른 NPM 생활 (npx, audit, ci)"에 대해 알아보고 시리즈를 마무리하겠습니다.