์ƒ์„ธ ์ปจํ…์ธ 

๋ณธ๋ฌธ ์ œ๋ชฉ

[๋…ธ๋“œ 2] 5์žฅ. ํŒจํ‚ค์ง€ ๋งค๋‹ˆ์ €

23-24/Node.js 2

by ๋„๋‹ด_dodam 2023. 11. 3. 10:01

๋ณธ๋ฌธ

728x90

๐ŸŒŸ5์žฅ ํ‚ค์›Œ๋“œ๐ŸŒŸ

npm

npx

package.json

ํŒจํ‚ค์ง€ ๋ฒ„์ „ x.x.x

 

1. npm ์•Œ์•„๋ณด๊ธฐ

  • Node Package Manager
  • npm์— ์—…๋กœ๋“œ๋œ ๋…ธ๋“œ ๋ชจ๋“ˆ์„ ํŒจํ‚ค์ง€๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค.

NPM ๋Œ€์ฒด์ž

  • yarn : ํŽ˜์ด์Šค๋ถ์—์„œ ๊ฐœ๋ฐœ, React ๋˜๋Š” React Native ๋“ฑ ํŽ˜์ด์Šค๋ถ ์ง„์˜์˜ ํ”„๋ ˆ์ž„์›Œํฌ ์‚ฌ์šฉ ์‹œ ๋ณผ ์ˆ˜ ์žˆ์Œ
  • pnpm : npm์˜ ์„ฑ๋Šฅ์„ ๊ฐœ์„ ํ•œ ํŒจํ‚ค์ง€ ๋งค๋‹ˆ์ €

2. package.json์œผ๋กœ ํŒจํ‚ค์ง€ ๊ด€๋ฆฌํ•˜๊ธฐ

  • ์„ค์น˜ํ•œ ํŒจํ‚ค์ง€์˜ ๋ฒ„์ „์„ ๊ด€๋ฆฌํ•˜๋Š” ํŒŒ์ผ
  • ๋…ธ๋“œ ํ”„๋กœ์ ํŠธ๋ฅผ ์‹œ์ž‘ํ•˜๊ธฐ ์ „, ํด๋” ๋‚ด๋ถ€์— ๋ฌด์กฐ๊ฑด package.json์„ ๋งŒ๋“ค๊ณ  ์‹œ์ž‘
  • package.json์„ ๋งŒ๋“œ๋Š” ์ดˆ๊ธฐํ™” ๋ช…๋ น์–ด npm init

 

package.json ํŒŒ์ผ ๊ตฌ์กฐ

{
  "name": "npmtest",
  "version": "0.0.1",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "yuz",
  "license": "ISC",
  "dependencies": {
    "express": "^4.18.2"
  }
}
  • npm run [๋ช…๋ น] : "scripts"์— ๋“ฑ๋ก๋œ ๋ช…๋ น์–ด ์‚ฌ์šฉ
  • npm install [ํŒจํ‚ค์ง€1] [ํŒจํ‚ค์ง€2] [ํŒจํ‚ค์ง€3] ... : ํŒจํ‚ค์ง€ ๋‹ค์šด๋กœ๋“œ (๋‹ค์šดํ•œ ํŒจํ‚ค์ง€๊ฐ€ package.json์— ๊ธฐ๋ก๋จ)

  • package.json ํŒŒ์ผ: ์ง์ ‘ ์„ค์น˜ํ•œ ํŒจํ‚ค์ง€๋ฅผ ๊ธฐ๋ก
  • package-lock.json ํŒŒ์ผ: ํŒจํ‚ค์ง€ ๊ฐ„์˜ ์˜์กด๊ด€๊ณ„ ๋ช…์‹œ

  • npm install --save-dev ์˜ต์…˜: ์‹ค์ œ ๋ฐฐํฌ ์‹œ์—๋Š” ์‚ฌ์šฉ๋˜์ง€ ์•Š๊ณ , ๊ฐœ๋ฐœ ์ค‘์—๋งŒ ์‚ฌ์šฉ๋˜๋Š” ํŒจํ‚ค์ง€
  • npm install --global ์˜ต์…˜: ์ „์—ญ ์„ค์น˜ (ํŒจํ‚ค์ง€๋ฅผ ํ˜„์žฌ ํด๋”์˜ node_modules์— ์„ค์น˜ํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ, npm์ด ์„ค์น˜๋˜์–ด ์žˆ๋Š” ํด๋”์— ์„ค์น˜, ๋Œ€๋ถ€๋ถ„ ๋ช…๋ น์–ด๋กœ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด ์ „์—ญ ์„ค์น˜ํ•จ)
  • rimraf ํŒจํ‚ค์ง€(๋ช…๋ น์–ด ์‚ฌ์šฉ): ์ง€์ •ํ•œ ํŒŒ์ผ์ด๋‚˜ ํด๋”๋ฅผ ์ง€์šฐ๋Š” ๋ฆฌ๋ˆ…์Šค ๋ช…๋ น์–ด rm -rf

 

npx

(Node Package eXecute)

 

ํŒจํ‚ค์ง€ ์ „์—ญ ์„ค์น˜๋ฅผ ํ”ผํ•˜๊ณ ์ž ํ•  ๋•Œ (package.json์— ๊ธฐ๋ก๋˜์ง€ ์•Š์•„ ๋‹ค์‹œ ์„ค์น˜ํ•  ๋•Œ ์–ด๋ ค์›€์ด ์žˆ์Œ)

  • npm install --save-dev rimraf
  • npx rimraf node_modules

๋ชจ๋“ˆ์„ package.json์˜ devDependencies ์†์„ฑ์— ๊ธฐ๋กํ•œ ํ›„, npx ๋ช…๋ น์–ด๋ฅผ ๋ถ™์—ฌ ์‚ฌ์šฉํ•˜๋ฉด ๋จ.
๊ทธ๋Ÿฌ๋ฉด ํŒจํ‚ค์ง€๋ฅผ ์ „์—ญ ์„ค์น˜ํ•œ ๊ฒƒ๊ณผ ๊ฐ™์€ ํšจ๊ณผ(๋ช…๋ น์–ด๋กœ ์‚ฌ์šฉ ๊ธฐ๋Šฅ)๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ์Œ!

 

 

3. ํŒจํ‚ค์ง€ ๋ฒ„์ „ ์ดํ•ดํ•˜๊ธฐ

ํŒจํ‚ค์ง€ ๋ฒ„์ „ ํ‘œ๊ธฐ x.x.x

  • ์ฒซ ๋ฒˆ์งธ ์ž๋ฆฌ; ๋ฉ”์ด์ € ๋ฒ„์ „ : ํ•˜์œ„ํ˜ธํ™˜์ด ๋˜์ง€ ์•Š๋Š” ๋ณ€๊ฒฝ ์‚ฌํ•ญ ์—…๋ฐ์ดํŠธ ์‹œ ์˜ฌ๋ฆผ (์˜ˆ๋ฅผ ๋“ค์–ด, 1.5.0 ๋ฒ„์ „ ํŒจํ‚ค์ง€๋ฅผ ์‚ฌ์šฉํ•˜๋˜ ์‚ฌ๋žŒ๋“ค์ด 2.0.0์œผ๋กœ ์—…๋ฐ์ดํŠธํ–ˆ์„ ๋•Œ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•  ํ™•๋ฅ ์ด ํฌ๋‹ค)
  • ๋‘ ๋ฒˆ์งธ ์ž๋ฆฌ; ๋งˆ์ด๋„ˆ ๋ฒ„์ „ : ํ•˜์œ„ํ˜ธํ™˜์ด ๋˜๋Š” ๋ณ€๊ฒฝ ์‚ฌํ•ญ ์—…๋ฐ์ดํŠธ ์‹œ ์˜ฌ๋ฆผ
  • ์„ธ ๋ฒˆ์งธ ์ž๋ฆฌ; ํŒจ์น˜ ๋ฒ„์ „ : ์ƒˆ ๊ธฐ๋Šฅ ์ถ”๊ฐ€ X, ๊ฐ„๋‹จํ•œ ๋ฒ„๊ทธ์— ๋Œ€ํ•œ ์ˆ˜์ • ๋ฒ„์ „์„ ๋‚ด๋†“์€ ๊ฒฝ์šฐ ์˜ฌ๋ฆผ

๋ฒ„์ „ ๊ด€๋ จ ๊ธฐํ˜ธ

  • ^ : ๋งˆ์ด๋„ˆ ๋ฒ„์ „๊นŒ์ง€๋งŒ ์„ค์น˜ํ•˜๊ฑฐ๋‚˜ ์—…๋ฐ์ดํŠธ. npm i express@^1.1.1 ์ด๋ผ๋ฉด 1.1.1 ์ด์ƒ๋ถ€ํ„ฐ 2.0.0 ๋ฏธ๋งŒ ๋ฒ„์ „๊นŒ์ง€ ์„ค์น˜๋จ. 2.0.0์€ ์„ค์น˜๋˜์ง€ ์•Š์Œ. 1.x.x ๋กœ๋„ ํ‘œ๊ธฐํ•  ์ˆ˜ ์žˆ์Œ
  • ~ : ํŒจ์น˜ ๋ฒ„์ „๊นŒ์ง€๋งŒ ์„ค์น˜ํ•˜๊ฑฐ๋‚˜ ์—…๋ฐ์ดํŠธ. 1.1.x๋กœ๋„ ํ‘œํ˜„ ๊ฐ€๋Šฅ
  • >, <, > =, < =, = : ์ดˆ๊ณผ, ๋ฏธ๋งŒ, ์ด์ƒ, ์ดํ•˜, ๋™์ผ. npm i express@>1.1.1 ๋ฐ˜๋“œ์‹œ 1.1.1 ๋ฒ„์ „๋ณด๋‹ค ๋†’์€ ๋ฒ„์ „ ์„ค์น˜
  • @next ๊ฐ€์žฅ ์ตœ๊ทผ ๋ฐฐํฌํŒ

4. ๊ธฐํƒ€ npm ๋ช…๋ น์–ด

  • npm outdated :๋ช…๋ น์–ด๋กœ ์—…๋ฐ์ดํŠธํ•  ์ˆ˜ ์žˆ๋Š” ํŒจํ‚ค์ง€๊ฐ€ ์žˆ๋Š”์ง€ ํ™•์ธ
  • npm uninstall [ํŒจํ‚ค์ง€์ด๋ฆ„] ๋˜๋Š” npm rm [ํŒจํ‚ค์ง€์ด๋ฆ„] : node_modules์™€ package.json์—์„œ ์ œ๊ฑฐํ•˜๋Š” ๋ช…๋ น
  • npm search [๊ฒ€์ƒ‰์–ด] : npm ํŒจํ‚ค์ง€ ๊ฒ€์ƒ‰
  • npm info [ํŒจํ‚ค์ง€์ด๋ฆ„] : ํŒจํ‚ค์ง€์˜ ์„ธ๋ถ€ ์ •๋ณด
  • npm login : ํŒจํ‚ค์ง€ ๋ฐฐํฌ ์‹œ npm ๊ณต์‹ ์‚ฌ์ดํŠธ ๋กœ๊ทธ์ธ
  • npm logout : ๋กœ๊ทธ์•„์›ƒ
  • npm version [๋ฒ„์ „] ๋˜๋Š” npm version [major|minor|patch] : package.json์˜ ๋ฒ„์ „์„ ์˜ฌ๋ฆผ. ๋ฌธ์ž์—ด ์ž…๋ ฅ ์‹œ ํ•ด๋‹น ๋ถ€๋ถ„์˜ ์ˆซ์ž๋ฅผ 1 ์˜ฌ๋ฆผ
  • npm deprecate [ํŒจํ‚ค์ง€์ด๋ฆ„] [๋ฒ„์ „] [๋ฉ”์‹œ์ง€] : (ํŒจํ‚ค์ง€ ๋ฐฐํฌ ์‹œ) ํ•ด๋‹น ํŒจํ‚ค์ง€๋ฅผ ์„ค์น˜ํ•  ๋•Œ ๊ฒฝ๊ณ  ๋ฉ”์‹œ์ง€๋ฅผ ๋„์›€
  • npm publish : ์ž์‹ ์ด ๋งŒ๋“  ํŒจํ‚ค์ง€ ๋ฐฐํฌ
  • npm unpublish : ์ž์‹ ์ด ๋ฐฐํฌํ•œ ํŒจํ‚ค์ง€ ์ œ๊ฑฐ (24์‹œ๊ฐ„ ์ด๋‚ด์— ๋ฐฐํฌํ•œ ํŒจํ‚ค์ง€๋งŒ ๊ฐ€๋Šฅ)
  • ๊ธฐํƒ€ ๋” ๋งŽ์€ ๋ช…๋ น์–ด๋Š” npm ๊ณต์‹ ๋ฌธ์„œ (https://docs.npmjs.com/)์˜ CLI Commands์—์„œ ํ™•์ธ

Node.js #2 

Editor : ์œ ์ฆˆ

728x90

๊ด€๋ จ๊ธ€ ๋”๋ณด๊ธฐ