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

Dev.log/Node.js

[Node.js ๊ต๊ณผ์„œ] #14. package.json์œผ๋กœ ํŒจํ‚ค์ง€ ๊ด€๋ฆฌํ•˜๊ธฐ

์„œ๋น„์Šค์— ํ•„์š”ํ•œ ํŒจํ‚ค์ง€๋ฅผ ํ•˜๋‚˜์”ฉ ์ถ”๊ฐ€ํ•˜๋‹ค ๋ณด๋ฉด ํŒจํ‚ค์ง€ ์ˆ˜๊ฐ€ 100๊ฐœ๋ฅผ ํ›Œ์ฉ ๋„˜์–ด ๋ฒ„๋ฆฌ๊ฒŒ ๋œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์‚ฌ์šฉํ•  ํŒจํ‚ค์ง€๋Š” ์ €๋งˆ๋‹ค ๊ณ ์œ ํ•œ ๋ฒ„์ „์ด ์žˆ์œผ๋ฏ€๋กœ ์–ด๋”˜๊ฐ€์— ๊ธฐ๋กํ•ด๋‘์–ด์•ผ ํ•œ๋‹ค. ๊ฐ™์€ ํŒจํ‚ค์ง€๋ผ๋„ ๋ฒ„์ „๋ณ„๋กœ ๊ธฐ๋Šฅ์ด ๋‹ค๋ฅผ ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ๋™์ผํ•œ ๋ฒ„์ „์„ ์„ค์น˜ํ•˜์ง€ ์•Š์œผ๋ฉด ๋ฌธ์ œ๊ฐ€ ์ƒ๊ธด๋‹ค. ์ด ๋•Œ ์„ค์น˜ํ•œ ํŒจํ‚ค์ง€์˜ ๋ฒ„์ „์„ ๊ด€๋ฆฌํ•˜๋Š” ํŒŒ์ผ์ด package.json์ด๋‹ค.

๋”ฐ๋ผ์„œ ํ”„๋กœ์ ํŠธ๋ฅผ ์‹œ์ž‘ํ•˜๊ธฐ ์ „์— package.json๋ถ€ํ„ฐ ๋งŒ๋“ค๊ณ  ์‹œ์ž‘ํ•˜๋Š” ๊ฒƒ์ด ์ข‹๋‹ค. npm์€ package.json์„ ๋งŒ๋“œ๋Š” ๋ช…๋ น์–ด๋ฅผ ์ œ๊ณตํ•œ๋‹ค.

โ–  package.json ๋งŒ๋“ค๊ธฐ

 

 

 

  • package name : ํŒจํ‚ค์ง€์˜ ์ด๋ฆ„์ด๋‹ค. package.json์˜ name ์†์„ฑ์— ์ €์žฅ๋œ๋‹ค.
  • version : ํŒจํ‚ค์ง€์˜ ๋ฒ„์ „์ด๋‹ค. npm์˜ ๋ฒ„์ „์€ ๋‹ค์†Œ ์—„๊ฒฉํ•˜๊ฒŒ ๊ด€๋ฆฌ๋œ๋‹ค.
  • entry point : ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์‹คํ–‰ ํŒŒ์ผ ์ง„์ž…์ ์ด๋‹ค. ๋ณดํ†ต ๋งˆ์ง€๋ง‰์œผ๋กœ module.exports๋ฅผ ํ•˜๋Š” ํŒŒ์ผ์„ ์ง€์ •ํ•œ๋‹ค. package.json์˜ main ์†์„ฑ์— ์ €์žฅ๋œ๋‹ค.
  • test command : ์ฝ”๋“œ๋ฅผ ํ…Œ์ŠคํŠธํ•  ๋•Œ ์ž…๋ ฅํ•  ๋ช…๋ น์–ด๋ฅผ ์˜๋ฏธํ•œ๋‹ค. package.json scripts ์†์„ฑ ์•ˆ์˜ test ์†์„ฑ์— ์ €์žฅ๋œ๋‹ค.
  • git repository : ์ฝ”๋“œ๋ฅผ ์ €์žฅํ•ด๋‘” git ์ €์žฅ์†Œ ์ฃผ์†Œ๋ฅผ ์˜๋ฏธํ•œ๋‹ค. package.json์˜ repository ์†์„ฑ์— ์ €์žฅ๋œ๋‹ค.
  • keywords : ํ‚ค์›Œ๋“œ๋Š” npm ๊ณต์‹ ํ™ˆํŽ˜์ด์ง€์—์„œ ํŒจํ‚ค์ง€๋ฅผ ์‰ฝ๊ฒŒ ์ฐพ์„ ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ค€๋‹ค. package.json์˜ keywords ์†์„ฑ์— ์ €์žฅ๋œ๋‹ค.
  • license : ํ•ด๋‹น ํŒจํ‚ค์ง€์˜ ๋ผ์ด์„ ์Šค๋ฅผ ๋„ฃ์–ด์ฃผ๋ฉด ๋œ๋‹ค.

 

โ˜‘ Note ๋ผ์ด์„ ์Šค

  • ์˜คํ”ˆ ์†Œ์Šค๋ผ๊ณ  ํ•ด์„œ ๋ชจ๋“  ํŒจํ‚ค์ง€๋ฅผ ์•„๋ฌด๋Ÿฐ ์ œ์•ฝ ์—†์ด ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์€ ์•„๋‹ˆ๋‹ค. ๋ผ์ด์„ ์Šค๋ณ„๋กœ ์ œํ•œ ์‚ฌํ•ญ์ด ์žˆ์œผ๋ฏ€๋กœ ์„ค์น˜ ์ „์— ๋ฐ˜๋“œ์‹œ ๋ผ์ด์„ ์Šค๋ฅผ ํ™•์ธํ•ด์•ผ ํ•œ๋‹ค.
  • ISC, MIT๋‚˜ BSD ๋ผ์ด์„ ์Šค๋ฅผ ๊ฐ€์ง„ ํŒจํ‚ค์ง€๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ๋Š” ์‚ฌ์šฉํ•œ ํŒจํ‚ค์ง€์™€ ๋ผ์ด์„ ์Šค๋งŒ ๋ฐํ˜€์ฃผ๋ฉด ์ž์œ ๋กญ๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. 
  • Apache ๋ผ์ด์„ ์Šค ํŒจํ‚ค์ง€๋Š” ์‚ฌ์šฉ์€ ์ž์œ ๋กญ์ง€๋งŒ ํŠนํ—ˆ๊ถŒ์— ๋Œ€ํ•œ ์ œํ•œ์ด ํฌํ•จ๋˜์–ด ์žˆ๋‹ค.
  • GPL ๋ผ์ด์„ ์Šค ํŒจํ‚ค์ง€๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ๋Š” ์กฐ์‹ฌํ•ด์•ผ ํ•œ๋‹ค. GPL ๊ณ„์—ด์˜ ํŒจ๋น„์ง€๋ฅผ ์‚ฌ์šฉํ•œ ํŒจํ‚ค์ง€๋ฅผ ๋ฐฐํฌํ•  ๋•Œ๋Š” ์ž์‹ ์˜ ํŒจํ‚ค์ง€๋„ GPL๋กœ ๋ฐฐํฌํ•˜๊ณ  ์†Œ์Šค ์ฝ”๋“œ๋„ ๊ณต๊ฐœํ•ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.
  • ๋ผ์ด์„ ์Šค๋ณ„๋กœ ํŠน์ง•์ด ๋‹ค๋ฅด๋ฏ€๋กœ ์˜คํ”ˆ ์†Œ์Šค๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์ „์— ๋ฐ˜๋“œ์‹œ ๋ผ์ด์„ ์Šค๋ฅผ ํ™•์ธํ•˜๊ณ  ์„ธ๋ถ€ ๋‚ด์šฉ์„ ์ฝ์–ด๋ด์•ผ ํ•œ๋‹ค.

 

 

scripts ๋ถ€๋ถ„์€ npm ๋ช…๋ น์–ด๋ฅผ ์ €์žฅํ•ด๋‘๋Š” ๋ถ€๋ถ„์ด๋‹ค. ์ฝ˜์†”์—์„œ npm run [์Šคํฌ๋ฆฝํŠธ ๋ช…๋ น์–ด]๋ฅผ ์ž…๋ ฅํ•˜๋ฉด ํ•ด๋‹น ์Šคํฌ๋ฆฝํŠธ๊ฐ€ ์‹คํ–‰๋œ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด npm run test๋ฅผ ํ•˜๋ฉด echo "Error: no test speicified" && exit 1๊ฐ€ ์‹คํ–‰๋œ๋‹ค. echo "Error: no test speicified"๋Š” ์ฝ˜์†”์— ํ•ป์•„ ๋ฌธ์ž์—ด์„ ์ถœ๋ ฅํ•˜๋ผ๋Š” ๋œป์ด๊ณ , exit 1์€ ์—๋Ÿฌ์™€ ํ•จ๊ป˜ ์ข…๋ฃŒํ•˜๋ผ๋Š” ๋œป์ด๋‹ค.

 

 

test ์Šคํฌ๋ฆฝํŠธ ์™ธ์—๋„ scripts ์†์„ฑ์— ๋ช…๋ น์–ด ์—ฌ๋Ÿฌ ๊ฐœ๋ฅผ ๋“ฑ๋กํ•ด๋‘๊ณ  ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ๋ณดํ†ต start ๋ช…๋ น์–ด์— node [ํŒŒ์ผ๋ช…]์„ ์ €์žฅํ•ด๋‘๊ณ  npm start๋กœ ์‹คํ–‰ํ•œ๋‹ค. start๋‚˜ test ๊ฐ™์€ ์Šคํฌ๋ฆฝํŠธ๋Š” run์„ ๋ถ™์ด์ง€ ์•Š์•„๋„ ์‹คํ–‰๋œ๋‹ค.

โ–  ํŒจํ‚ค์ง€ ์„ค์น˜ํ•˜๊ธฐ

express ํŒจํ‚ค์ง€๋ฅผ ์„ค์น˜ํ•ด๋ณด์ž. npm install [ํŒจํ‚ค์ง€ ์ด๋ฆ„] ์„ package.json์ด ์žˆ๋Š” ํด๋”์˜ ์ฝ˜์†”์—์„œ ์ž…๋ ฅํ•˜๋ฉด ๋œ๋‹ค.

 

 

์„ค์น˜ํ•œ ํŒจํ‚ค์ง€๊ฐ€ package.json์— ๊ธฐ๋ก๋œ๋‹ค.

 

 

dependencies๋ผ๋Š” ์†์„ฑ์ด ์ƒˆ๋กœ ์ƒ๊ฒผ๊ณ , express๋ผ๋Š” ์ด๋ฆ„๊ณผ ํ•จ๊ป˜ ์„ค์น˜๋œ ๋ฒ„์ „์ด ์ €์žฅ๋˜์—ˆ๋‹ค. ๋ฒ„์ „ ์•ž์— ^ ํ‘œ์‹œ๊ฐ€ ๋ถ™์–ด์žˆ๋Š”๋ฐ, ์—ฌ๊ธฐ์—๋Š” ํŠน๋ณ„ํ•œ ์˜๋ฏธ๊ฐ€ ์žˆ๋‹ค. (์ถ”ํ›„ ์„ค๋ช… ์˜ˆ์ •)

 

โ˜‘ Note npm WARN npmtest@0.0.1 No repository field.

  • ์ด ๊ฒฝ๊ณ ๋Š” package.json์— repository ์†์„ฑ์ด ์—†์–ด์„œ ๋ฐœ์ƒํ•œ ๊ฒƒ์ด๋‹ค. ๋‚˜์ค‘์— ์†Œ์Šค ์ฝ”๋“œ๋ฅผ GitHub์ด๋‚˜ Gitlab ๋“ฑ๊ณผ ๊ฐ™์€ ์ €์žฅ์†Œ์— ์ €์žฅํ•œ ํ›„, repository ์†์„ฑ์„ ๋งŒ๋“ค๊ณ  GitHub์ด๋‚˜ Gitlab ์ฃผ์†Œ๋ฅผ ์ ์–ด์ฃผ๋ฉด ๋œ๋‹ค.

 

โ˜‘ Note --save ์˜ต์…˜

  • ํŒจํ‚ค์ง€๋ฅผ ์„ค์น˜ํ•  ๋•Œ npm install ๋ช…๋ น์–ด์— --save ์˜ต์…˜์„ ๋ถ™์ด๋Š” ์ฑ…์ด๋‚˜ ๋ธ”๋กœ๊ทธ๋ฅผ ๋งŽ์ด ๋ณผ ์ˆ˜ ์žˆ๋‹ค. dependencies์— ํŒจํ‚ค์ง€ ์ด๋ฆ„์„ ์ถ”๊ฐ€ํ•˜๋Š” ์˜ต์…˜์ด์ง€๋งŒ npm@5๋ถ€ํ„ฐ๋Š” ๊ธฐ๋ณธ๊ฐ’์œผ๋กœ ์„ค์ •๋˜์–ด ์žˆ์œผ๋ฏ€๋กœ ๋”ฐ๋กœ ๋ถ™์ด์ง€ ์•Š์•„๋„ ๋œ๋‹ค.

 

์ถ”๊ฐ€๋กœ node_modules๋ผ๋Š” ํด๋”๋„ ์ƒ์„ฑ๋˜์—ˆ๋‹ค. ๊ทธ ์•ˆ์— ์„ค์น˜ํ•œ ํŒจํ‚ค์ง€๋“ค์ด ๋“ค์–ด ์žˆ๋‹ค.

 

 

Express ํ•˜๋‚˜๋งŒ ์„ค์น˜ํ–ˆ๋Š”๋ฐ ํŒจํ‚ค์ง€๊ฐ€ ์—ฌ๋Ÿฌ ๊ฐœ ๋“ค์–ด ์žˆ๋‹ค. ์ด๋Š” Express๊ฐ€ ์˜์กดํ•˜๋Š” ํŒจํ‚ค์ง€๋“ค์ด๋‹ค. ํŒจํ‚ค์ง€ ํ•˜๋‚˜๊ฐ€ ๋‹ค๋ฅธ ์—ฌ๋Ÿฌ ํŒจํ‚ค์ง€์— ์˜์กดํ•˜๊ณ , ๊ทธ ํŒจํ‚ค์ง€๋“ค์€ ๋˜ ๋‹ค๋ฅธ ํŒจํ‚ค์ง€๋“ค์— ์˜์กดํ•œ๋‹ค. ์ด๋ ‡๊ฒŒ ์˜์กด ๊ด€๊ณ„๊ฐ€ ๋ณต์žกํ•˜๊ฒŒ ์–ฝํ˜€ ์žˆ์–ด package.json์ด ํ•„์š”ํ•œ ๊ฒƒ์ด๋‹ค.

 

package-lock.json์ด๋ผ๋Š” ํŒŒ์ผ๋„ ์ƒ์„ฑ๋˜์—ˆ๋‹ค.

 

 

์ง์ ‘ ์„ค์น˜ํ•œ express ์™ธ์—๋„ node_modules์— ๋“ค์–ด ์žˆ๋Š” ํŒจํ‚ค์ง€๋“ค์˜ ์ •๋ณด๊ฐ€ ๋‹ด๊ฒจ ์žˆ๋‹ค. npm์œผ๋กœ ํŒจํ‚ค์ง€๋ฅผ ์„ค์น˜, ์ˆ˜์ •, ์‚ญ์ œํ•  ๋•Œ๋งˆ๋‹ค ๋‚ด๋ถ€ ์˜์กด ๊ด€๊ณ„๋ฅผ ์ด ํŒŒ์ผ์— ์ €์žฅํ•œ๋‹ค.

โ–  ๋ชจ๋“ˆ ์—ฌ๋Ÿฌ ๊ฐœ ๋™์‹œ์— ์„ค์น˜ํ•ด๋ณด๊ธฐ

npm install [ํŒจํ‚ค์ง€1] [ํŒจํ‚ค์ง€2] [ํŒจํ‚ค์ง€3] [...] ์™€ ๊ฐ™์ด ํŒจํ‚ค์ง€๋“ค์„ ๋‚˜์—ดํ•˜๋ฉด ๋œ๋‹ค.

 

 

์„ค์น˜ํ•œ ํŒจํ‚ค์ง€๋“ค์ด dependencies ์†์„ฑ์— ๊ธฐ๋ก๋œ๋‹ค.

 

โ–  ๊ฐœ๋ฐœ์šฉ ํŒจํ‚ค์ง€ ์„ค์น˜ํ•˜๊ธฐ

์‹ค์ œ ๋ฐฐํฌ ์‹œ์—๋Š” ์‚ฌ์šฉ๋˜์ง€ ์•Š๊ณ , ๊ฐœ๋ฐœ ์ค‘์—๋งŒ ์‚ฌ์šฉ๋˜๋Š” ํŒจํ‚ค์ง€๋ฅผ ์„ค์น˜ํ•  ์ˆ˜ ์žˆ๋‹ค. npm install --save-dev [ํŒจํ‚ค์ง€] [...] ๋กœ ์„ค์น˜ํ•œ๋‹ค.

 

 

 

package.json์— devDependencies๋ผ๋Š” ์ƒˆ๋กœ์šด ์†์„ฑ์ด ์ƒ๊ฒผ๋‹ค. devDependencies ์†์„ฑ์—์„œ๋Š” ๊ฐœ๋ฐœ์šฉ ํŒจํ‚ค์ง€๋“ค๋งŒ ๋”ฐ๋กœ ๊ด€๋ฆฌํ•œ๋‹ค.

โ–  npm ์ „์—ญ ํŒจํ‚ค์ง€ ์„ค์น˜ํ•˜๊ธฐ

npm์—๋Š” ์ „์—ญ ์„ค์น˜๋ผ๋Š” ์˜ต์…˜๋„ ์žˆ๋‹ค. ํŒจํ‚ค์ง€๋ฅผ ํ˜„์žฌ ํด๋”์˜ node_modules์— ์„ค์น˜ํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ npm์ด  ์„ค์น˜๋˜์–ด ์žˆ๋Š” ํด๋”(Windows์˜ ๊ฒฝ์šฐ ๊ธฐ๋ณธ ๊ฒฝ๋กœ๋Š” C:\Users\์‚ฌ์šฉ์ž์ด๋ฆ„\AppData\Roamng\npm, macOS์˜ ๊ฒฝ์šฐ์—๋Š” /usr/local/lib/node_modules)์— ์„ค์น˜ํ•œ๋‹ค. ์ด ํด๋”์˜ ๊ฒฝ๋กœ๋Š” ๋ณดํ†ต ์‹œ์Šคํ…œ ํ™˜๊ฒฝ ๋ณ€์ˆ˜์— ๋“ฑ๋ก๋˜์–ด ์žˆ์œผ๋ฏ€๋กœ ์ „์—ญ ์„ค์น˜ํ•œ ํŒจํ‚ค์ง€๋Š” ์ฝ˜์†”์˜ ์ปค๋งจ๋“œ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

 

 

  • rimraf ํŒจํ‚ค์ง€ : ๋ฆฌ๋ˆ…์Šค๋‚˜ macOS์˜ rm -rf ๋ช…๋ น์–ด๋ฅผ ์œˆ๋„์—์„œ๋„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” ํŒจํ‚ค์ง€์ด๋‹ค. rm -rf๋Š” ์ง€์ •ํ•œ ํŒŒ์ผ์ด๋‚˜ ํด๋”๋ฅผ ์ง€์šฐ๋Š” ๋ช…๋ น์–ด์ด๋‹ค. ์ „์—ญ ์„ค์น˜ํ–ˆ์œผ๋ฏ€๋กœ rimraf ๋ช…๋ น์–ด๋ฅผ ์ฝ˜์†”์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ์ „์—ญ ์„ค์น˜ํ•œ ํŒจํ‚ค์ง€๋Š” package.json์— ๊ธฐ๋ก๋˜์ง€ ์•Š๋Š”๋‹ค.

โ–  rimraf๋กœ node_modules ํด๋” ์‚ญ์ œํ•ด๋ณด๊ธฐ

 

์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ๋‹ค. ์ธํ„ฐ๋„ท์— ์ฐพ์•„๋ณด๋‹ˆ ํ•ด๊ฒฐ์ฑ…์ด ์žˆ์—ˆ๋‹ค. (https://singa-korean.tistory.com/21)

 

โ‘  PowerShell ๊ด€๋ฆฌ์ž ๊ถŒํ•œ์œผ๋กœ ์‹คํ–‰

โ‘ก get-help Set-ExecutionPolicy๋กœ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋Š” ๊ถŒํ•œ ํ™•์ธ

โ‘ข RemoteSigned ๊ถŒํ•œ์œผ๋กœ ์ •์ฑ… ์„ค์ •

โ‘ฃ ์›๋ž˜ ํ•˜๋ ค๊ณ  ํ–ˆ๋˜ ๊ฑฐ ๋‹ค์‹œ ํ•ด๋ณด๊ธฐ

rimraf ์‹คํ–‰ ํ›„ NodeProject ํด๋” ๋‚ด์— node_modules ํด๋”๊ฐ€ ์ œ๊ฑฐ๋œ ๊ฒƒ ํ™•์ธ

 

์„ค์น˜ํ•œ ํŒจํ‚ค์ง€๋ฅผ ์ง€์›Œ๋ฒ„๋ ธ์ง€๋งŒ package.json์— ์„ค์น˜ํ•œ ํŒจํ‚ค์ง€ ๋‚ด์—ญ์ด ๋“ค์–ด ์žˆ์œผ๋ฏ€๋กœ ๊ฑฑ์ •ํ•˜์ง€ ์•Š์•„๋„ ๋œ๋‹ค. npm install๋งŒ ํ•˜๋ฉด ์•Œ์•„์„œ ๋‹ค์‹œ ์„ค์น˜๋œ๋‹ค.

 

 

 

์ฆ‰, node_modules๋Š” ์–ธ์ œ๋“ ์ง€ npm install๋กœ ์„ค์น˜ํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ node_modules๋Š” ๋ณด๊ด€ํ•  ํ•„์š”๊ฐ€ ์—†๋‹ค๋Š” ์ ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค. Git ๊ฐ™์€ ๋ฒ„์ „ ๊ด€๋ฆฌ ํ”„๋กœ๊ทธ๋žจ๊ณผ ๊ฐ™์ด ์‚ฌ์šฉํ•  ๋•Œ๋„ node_modules๋Š” ์ปค๋ฐ‹ํ•˜์ง€ ์•Š๋Š”๋‹ค. ์ค‘์š”ํ•œ ํŒŒ์ผ์€ package.json์ด๋‹ค.

 

โ˜‘ Note npx ๋ช…๋ น์–ด

  • ์ „์—ญ ์„ค์น˜๋ฅผ ๊ธฐํ”ผํ•˜๋Š” ๊ฐœ๋ฐœ์ž๋“ค๋„ ์žˆ๋‹ค. ์ „์—ญ ์„ค์น˜ํ•œ ํŒจํ‚ค์ง€๋Š” package.json์— ๊ธฐ๋ก๋˜์ง€ ์•Š์•„ ๋‹ค์‹œ ์„ค์น˜ํ•  ๋•Œ ์–ด๋ ค์›€์ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ์ด๋Ÿฌํ•œ ๊ฒฝ์šฐ๋ฅผ ์œ„ํ•œ ๋ช…๋ น์–ด๋กœ npx๊ฐ€ ์žˆ๋‹ค.
  • ์•„๋ž˜์™€ ๊ฐ™์ด rimraf ๋ชจ๋“ˆ์„ package.json์˜ devDependencies ์†์„ฑ์— ๊ธฐ๋กํ•œ ํ›„, ์•ž์— npx ๋ช…๋ น์–ด๋ฅผ ๋ถ™์—ฌ ์‹คํ–‰ํ•˜๋ฉด ๋œ๋‹ค. ํŒจํ‚ค์ง€๋ฅผ ์ „์—ญ ์„ค์น˜ํ•œ ๊ฒƒ๊ณผ ๊ฐ™์€ ํšจ๊ณผ๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ๋‹ค.
    npm install --save-dev rimrafโ€‹
    npx rimraf node_modules

 

โ˜‘ Note npm์— ๋“ฑ๋ก๋˜์ง€ ์•Š์€ ํŒจํ‚ค์ง€

  • ๋ชจ๋“  ํŒจํ‚ค์ง€๊ฐ€ npm์— ๋“ฑ๋ก๋˜์–ด ์žˆ๋Š” ๊ฒƒ์€ ์•„๋‹ˆ๋‹ค. ์ผ๋ถ€ ํŒจํ‚ค์ง€๋Š” ์˜คํ”ˆ ์†Œ์Šค๊ฐ€ ์•„๋‹ˆ๊ฑฐ๋‚˜ ๊ฐœ๋ฐœ ์ค‘์ธ ํŒจํ‚ค์ง€๋ผ์„œ GitHub๋‚˜ nexus ๋“ฑ์˜ ์ €์žฅ์†Œ์— ๋ณด๊ด€๋˜์–ด ์žˆ์„ ์ˆ˜๋„ ์žˆ๋‹ค. ๊ทธ๋Ÿฌํ•œ ํŒจํ‚ค์ง€๋“ค๋„ npm install [์ €์žฅ์†Œ ์ฃผ์†Œ] ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด ์„ค์น˜ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

โ˜‘ Note ๋ช…๋ น์–ด ์ค„์—ฌ์“ฐ๊ธฐ

  • npm install ๋ช…๋ น์–ด๋Š” npm i๋กœ ์ค„์—ฌ์“ธ ์ˆ˜ ์žˆ๋‹ค. --save-dev ์˜ต์…˜์€ -D๋กœ, --global ์˜ต์…˜์€ -g๋กœ ์ค„์—ฌ์„œ ์จ๋„ ๋œ๋‹ค.