๋ณธ๋ฌธ์œผ๋กœ ๋ฐ”๋กœ๊ฐ€๊ธฐ

npm ์ด๋ž€?

NPM์€ Node.js๋ฅผ ์œ„ํ•œ ํŒจํ‚ค์ง€ ๋งค๋‹ˆ์ €์™€ ์„ค์น˜ ๊ด€๋ฆฌ์ž๋กœ, ์ˆ˜๋งŽ์€ ์˜คํ”ˆ์†Œ์Šค ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์™€ ๋„๊ตฌ๋“ค์ด ์—…๋กœ๋“œ๋˜๋Š” ์ €์žฅ์†Œ์ž…๋‹ˆ๋‹ค. NPM CLI๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ•„์š”ํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋‚˜ ๋„๊ตฌ๋ฅผ ์‰ฝ๊ฒŒ ์„ค์น˜ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ํ”„๋กœ์ ํŠธ ๊ด€๋ฆฌ๋ฅผ ์œ„ํ•œ ๋‹ค์–‘ํ•œ ๋ช…๋ น์–ด๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. Node.js๋ฅผ ์„ค์น˜ํ•˜๋ฉด ์ž๋™์œผ๋กœ NPM๋„ ์„ค์น˜๋˜๋ฉฐ, ์ด๋Š” ํŒจํ‚ค์ง€๋ฅผ ์„œ๋กœ ๊ณต์œ ํ•˜๊ธฐ ์œ„ํ•จ์ž…๋‹ˆ๋‹ค. NPM์€ ์„ธ๊ณ„์—์„œ ๊ฐ€์žฅ ํฐ ์†Œํ”„ํŠธ์›จ์–ด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ด๋ฉฐ, 800,000๊ฐœ ์ด์ƒ์˜ ์ฝ”๋“œ ํŒจํ‚ค์ง€๋ฅผ ๋ณด์œ ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์˜คํ”ˆ์†Œ์Šค ๊ฐœ๋ฐœ์ž๋“ค์€ NPM์„ ์‚ฌ์šฉํ•˜์—ฌ ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ๊ณต์œ ํ•˜๋ฉฐ, ๋งŽ์€ ๊ธฐ์—…๋“ค๋„ NPM์„ ์ด์šฉํ•˜์—ฌ ๊ฐœ์ธ์ ์ธ ๊ฐœ๋ฐœ์„ ๊ด€๋ฆฌํ•ฉ๋‹ˆ๋‹ค. NPM์€ ๋ฌด๋ฃŒ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

 

npm์„ ์ด์šฉํ•ด ํŒจํ‚ค์ง€ ์„ค์น˜ํ•˜๊ธฐ

1. package.json

ํ”„๋กœ์ ํŠธ์˜ ์ •๋ณด์™€ ์˜์กด์„ฑ ํŒจํ‚ค์ง€๋ฅผ ๊ธฐ๋กํ•˜๋Š” package.json ํŒŒ์ผ์ด ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค. ์ด ํŒŒ์ผ์€ ํ”„๋กœ์ ํŠธ์˜ ์ •๋ณด์™€ ํ•„์š”ํ•œ ํŒจํ‚ค์ง€์˜ ์ •๋ณด๋ฅผ ์ €์žฅํ•˜๋Š” JSON ํ˜•์‹์˜ ํŒŒ์ผ์ž…๋‹ˆ๋‹ค.

npm init

 

2. npm install

ํ•„์š”ํ•œ ํŒจํ‚ค์ง€๋ฅผ ์„ค์น˜ํ•  ๋•Œ๋Š” npm install ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ด ๋•Œ, ์„ค์น˜๋œ ํŒจํ‚ค์ง€๋Š” package.json์˜ dependencies ํ•ญ๋ชฉ์— ์ถ”๊ฐ€๋˜๋ฉฐ, node_modules ๋””๋ ‰ํ† ๋ฆฌ์— ์ €์žฅ๋ฉ๋‹ˆ๋‹ค.

npm install OOO

npm i --save OOO
# node_modules ๋””๋ ‰ํ† ๋ฆฌ์— ๋ชจ๋“ˆ์„ ์„ค์น˜ํ•˜๊ณ , ์ถ”๊ฐ€๋กœ package.json์— ๋””ํŽœ๋˜์‹œ๋ฅผ ์ถ”๊ฐ€ํ•ด์คŒ
# node15 ๋ถ€ํ„ด --save์˜ต์…˜์ด default ๊ฐ’์ด ๋˜์—ˆ์Œ

 

3. ์ „์—ญ ํŒจํ‚ค์ง€ ์„ค์น˜

์ฃผ๋กœ ํ”„๋กœ์ ํŠธ์— ์ข…์†๋˜์ง€ ์•Š๋Š” ์ปค๋งจ๋“œ๋ผ์ธ ๋„๊ตฌ๋“ค์„ ์ „์—ญ ํŒจํ‚ค์ง€๋กœ ์ถ”๊ฐ€ํ•ด์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • npm install์€ ํ”„๋กœ์ ํŠธ ํด๋”์— ํŒจํ‚ค์ง€๋ฅผ ์„ค์น˜ํ•˜์ง€๋งŒ -g ๋Š” ์‹œ์Šคํ…œ ํด๋”์— ํŒจํ‚ค์ง€๋ฅผ ์„ค์น˜ํ•จ
  • -g ํ”Œ๋ž˜๊ทธ๋ฅผ ์‚ฌ์šฉํ•  ๊ฒฝ์šฐ package.json ์˜ ์˜์กด์„ฑ ๋ชฉ๋ก์— ๋น ์ง„๋‹ค.
npm install OOO -g
npm install OOO --global

 

4. ๊ฐœ๋ฐœ ํ™˜๊ฒฝ ํŒจํ‚ค์ง€ ์„ค์น˜

๊ฐœ๋ฐœ ์ค‘์ธ ํ”„๋กœ์ ํŠธ์—์„œ๋งŒ ์‚ฌ์šฉ๋˜๋Š” ํŒจํ‚ค์ง€๋ฅผ ์„ค์น˜ํ•˜๊ณ ์ž ํ•  ๋•Œ์—๋Š” --save-dev ์˜ต์…˜์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ด ๋•Œ, ์„ค์น˜๋œ ํŒจํ‚ค์ง€๋Š” package.json์˜ devDependencies ํ•ญ๋ชฉ์— ์ถ”๊ฐ€๋ฉ๋‹ˆ๋‹ค.

npm install OOO -D
npm install OOO --save-dev

 

5. ๋ชจ๋“  ์˜์กด์„ฑ ํŒจํ‚ค์ง€ ์„ค์น˜

package.json์˜ dependencies์™€ devDependencies ํ•ญ๋ชฉ์˜ ๋ชจ๋“  ํŒจํ‚ค์ง€๋ฅผ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค.

npm install

 

5. ํ”„๋กœ๋•์…˜์šฉ ํŒจํ‚ค์ง€๋งŒ ์„ค์น˜

ํ”„๋กœ์ ํŠธ๋ฅผ ๋ฐฐํฌํ•  ๋•Œ์—๋Š” ๊ฐœ๋ฐœ์šฉ ์˜์กด์„ฑ์„ ๊ฐ™์ด ํฌํ•จํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ์ด ๊ฒฝ์šฐ, --production ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜์—ฌ dependencies๋งŒ  node_modules์— ๋‚ด๋ ค๋ฐ›์Šต๋‹ˆ๋‹ค.

npm install --production

 

6. ํŒจํ‚ค์ง€์˜ ๋ฒ„์ „์„ ์ง€์ •ํ•˜์—ฌ ์„ค์น˜ํ•˜๊ธฐ

 ํŒจํ‚ค์ง€ ์ด๋ฆ„ ๋’ค์— @ ๊ธฐํ˜ธ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ , ๋ฒ„์ „์„ ์ง€์ •ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

~ ๋ฒ„์ „ (tilde version) ๋งˆ์ด๋„ˆ ๋ฒ„์ „ ์œ ์ง€, ํŒจ์น˜ ๋ ˆ๋ฒจ ๋ฒ„์ „๋งŒ ์—…๊ทธ๋ ˆ์ด๋“œ

^ ๋ฒ„์ „ (caret version) ๋ฉ”์ด์ € ๋ฒ„์ „ ์œ ์ง€, ๋งˆ์ด๋„ˆ ๋ฒ„์ „๊นŒ์ง€ ์—…๊ทธ๋ ˆ์ด๋“œ

npm install OOO @[version]

# ์ •ํ™•ํžˆ 1.13.0์ธ ๋ฒ„์ „ ์„ค์น˜
npm install OOO@1.13.0

# 1.13.XXX ์„ค์น˜
# 1.13.0 ์ด์ƒ, 1.14.0 ๋ฏธ๋งŒ ๋ฒ„์ „ ์„ค์น˜
npm install OOO@~1.13.0

# 1.XXX.XXX ์„ค์น˜
# 1.13.0 ์ด์ƒ, 2.0.0 ๋ฏธ๋งŒ ๋ฒ„์ „ ์„ค์น˜
npm install OOO@^1.13.0

 

 

๋‹ค์–‘ํ•œ npm ๋ช…๋ น์–ด

 

๋ชจ๋“ˆ ์ง€์šฐ๊ธฐ

package.json์˜ dependencies์™€ devDependencies์—์„œ ์‚ญ์ œํ•˜๊ณ  node_modules์—์„œ๋„ ์‚ญ์ œํ•œ๋‹ค.

npm uninstall OOO

 

 

npm ์บ์‹œ ์‚ญ์ œ

์—ฌ๋Ÿฌ ํ”„๋กœ์ ํŠธ ์ง„ํ–‰ ์ค‘, ๋ชจ๋“ˆ ์ถฉ๋Œ ๋ฐ ์˜ˆ๊ธฐ์น˜ ๋ชปํ•œ ์—๋Ÿฌ ๋ฐœ์ƒ์‹œ ์‚ฌ์šฉํ•œ๋‹ค.

npm cache clean

 

๊ธ€๋กœ๋ฒŒ ๋ชจ๋“ˆ ๊ด€๋ จ ๋ช…๋ น์–ด

$ npm list -g --depth=0
# ๊ธ€๋กœ๋ฒŒ ๋ชจ๋“ˆ ํ™•์ธ

console
โ”œโ”€โ”€ eslint@6.8.0
โ”œโ”€โ”€ eslint-config-airbnb-base@14.0.0
โ”œโ”€โ”€ eslint-plugin-import@2.19.1
โ”œโ”€โ”€ eslint-plugin-prettier@3.1.2


$ npm uninstall -g  <ํŒจํ‚ค์ง€์ด๋ฆ„>
#๊ธ€๋กœ๋ฒŒ ๋ชจ๋“ˆ ์‚ญ์ œ
  • ์‹œ์Šคํ…œ์˜ node_modules ํด๋” ๊ฒฝ๋กœ๋Š” npm root -g ๋ฅผ ํ†ตํ•ด ์ฐพ์„ ์ˆ˜ ์žˆ๋‹ค.
  • Win10 ๊ธฐ์ค€์œผ๋กœ๋Š” (์‚ฌ์šฉ์ž๋ช…)\AppData\Roaming\npm\node_modules
  • MAC ๊ธฐ์ค€ /usr/local/lib/node_modules
๋ฐ˜์‘ํ˜•