[DevCamp] ๐Ÿ“ฆ npm์„ ํ†ตํ•œ ์˜คํ”ˆ์†Œ์Šค ๋ฐฐํฌํ•˜๊ธฐ

๋™๊ฑดยท2025๋…„ 5์›” 27์ผ
0

DevCamp

๋ชฉ๋ก ๋ณด๊ธฐ
73/85

๐Ÿ“ฆ npm์„ ํ†ตํ•œ ์˜คํ”ˆ์†Œ์Šค ๋ฐฐํฌํ•˜๊ธฐ

์˜คํ”ˆ์†Œ์Šค๋กœ ๋งŒ๋“  JavaScript ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ๋” ๋งŽ์€ ์‚ฌ๋žŒ๋“ค๊ณผ ๊ณต์œ ํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด,
๊ฐ€์žฅ ๋„๋ฆฌ ์‚ฌ์šฉ๋˜๋Š” ํŒจํ‚ค์ง€ ๋งค๋‹ˆ์ €์ธ npm(Node Package Manager)์„ ํ†ตํ•ด ๋ฐฐํฌํ•  ์ˆ˜ ์žˆ๋‹ค.

์˜ค๋Š˜์€ npm์— ์˜คํ”ˆ์†Œ์Šค๋ฅผ ๋ฐฐํฌํ•˜๋Š” ๊ธฐ๋ณธ์ ์ธ ๊ณผ์ •์„ ์ •๋ฆฌํ•ด๋ณด๋ ค ํ•œ๋‹ค.


โœ… ์‚ฌ์ „ ์ค€๋น„ ์‚ฌํ•ญ

  • Node.js์™€ npm ์„ค์น˜
  • npm ๊ณ„์ • ์ƒ์„ฑ (https://www.npmjs.com/)
  • ๋ฐฐํฌํ•  ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ ๋ฐ ์ดˆ๊ธฐํ™”
npm init

๐Ÿ—‚๏ธ ํ”„๋กœ์ ํŠธ ๊ตฌ์กฐ ์˜ˆ์‹œ

my-lib/
โ”œโ”€โ”€ src/
โ”‚   โ””โ”€โ”€ index.js
โ”œโ”€โ”€ package.json
โ”œโ”€โ”€ README.md
โ””โ”€โ”€ .gitignore

๐Ÿ“ package.json ์„ค์ •

{
  "name": "my-awesome-lib",
  "version": "1.0.0",
  "description": "Awesome JS library",
  "main": "src/index.js",
  "scripts": {
    "test": "echo \"No test specified\" && exit 0"
  },
  "repository": {
    "type": "git",
    "url": "https://github.com/yourname/my-awesome-lib.git"
  },
  "author": "Your Name",
  "license": "MIT"
}
  • name: ๊ณ ์œ ํ•œ ํŒจํ‚ค์ง€๋ช… (npm์— ์ด๋ฏธ ๋“ฑ๋ก๋˜์ง€ ์•Š์€ ์ด๋ฆ„)
  • version: semver ๋ฐฉ์‹์œผ๋กœ ๋ฒ„์ „ ๊ด€๋ฆฌ

๐Ÿš€ ๋ฐฐํฌ ๋ช…๋ น์–ด

  1. ๋กœ๊ทธ์ธ
npm login
  1. ์ตœ์ดˆ ๋ฐฐํฌ
npm publish
  1. ์ˆ˜์ • ํ›„ ์žฌ๋ฐฐํฌ ์‹œ (๋ฒ„์ „ ์—…๋ฐ์ดํŠธ ํ•„์ˆ˜)
npm version patch
npm publish

๐Ÿ›ก๏ธ ๋ฐฐํฌ ํŒ

  • .npmignore๋ฅผ ์„ค์ •ํ•˜์—ฌ ๋ถˆํ•„์š”ํ•œ ํŒŒ์ผ ์ œ์™ธ
  • README.md๋Š” ๊น”๋”ํ•˜๊ณ  ์„ค์น˜/์‚ฌ์šฉ ์˜ˆ์ œ ํ•„์ˆ˜
  • GitHub ์—ฐ๋™์œผ๋กœ ์ฝ”๋“œ ๊ณต๊ฐœ ๋ฐ ์œ ์ง€ ๊ด€๋ฆฌ

๐Ÿ”จ TIL

  • npm์€ ์ฝ”๋“œ ๋ฐฐํฌ๋ฟ ์•„๋‹ˆ๋ผ ์˜คํ”ˆ์†Œ์Šค๋ฅผ ์†์‰ฝ๊ฒŒ ๊ณต์œ ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ•๋ ฅํ•œ ๋„๊ตฌ์ž„์„ ์•Œ๊ฒŒ ๋˜์—ˆ๋‹ค.
  • ๋ฒ„์ „ ๊ด€๋ฆฌ์™€ ๋ฌธ์„œํ™”์˜ ์ค‘์š”์„ฑ์„ ๋‹ค์‹œ ํ•œ๋ฒˆ ๋А๊ผˆ๋‹ค.
  • ๋ˆ„๊ตฌ๋‚˜ ์‰ฝ๊ฒŒ ์ž์‹ ์˜ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ๋ฐฐํฌํ•  ์ˆ˜ ์žˆ์œผ๋‹ˆ ๋ถ€๋‹ด ์—†์ด ์‹œ๋„ํ•ด๋ณผ ๋งŒํ•œ ๊ฐ€์น˜๊ฐ€ ์žˆ๋‹ค.
profile
๋ฐฐ๊ณ ํ”ˆ ๊ฐœ๋ฐœ์ž

0๊ฐœ์˜ ๋Œ“๊ธ€