[Express] 3. Nodemon

Byungchan Parkยท2021๋…„ 9์›” 20์ผ
0

Express ํŠœํ† ๋ฆฌ์–ผ

๋ชฉ๋ก ๋ณด๊ธฐ
3/4

summary ๐Ÿ’ฅ

  • nodemon : ์šฐ๋ฆฌ๊ฐ€ ์ž‘์„ฑํ•œ ์†Œ์Šค๊ฐ€ ๋ณ€๊ฒฝ๋œ ๊ฒƒ์„ ๊ฐ์ง€ํ•ด์„œ ์ž๋™์œผ๋กœ ์„œ๋ฒ„๋ฅผ ์žฌ์‹œ์ž‘ํ•ด์ฃผ๋Š” ๋ชจ๋“ˆ
  • nodemon ๋‹ค์šด๋กœ๋“œ : npm install nodemon --dev
  • package.json ๋‚ด scripts์— "dev" : "nodemon src/index.js" ์ž‘์„ฑ
  • npm run backend ๋กœ ์„œ๋ฒ„ ๊ตฌ๋™

1. Nodemon

์„œ๋ฒ„ ์ฝ”๋“œ๋ฅผ ๋ณ€๊ฒฝ ํ•  ๋•Œ๋งˆ๋‹ค, ๋งค๋ฒˆ ํ„ฐ๋ฏธ๋„์— npm run start ์ž…๋ ฅํ•ด์„œ ์„œ๋ฒ„๋ฅผ ์žฌ์‹œ์ž‘ํ•˜๋Š” ๊ฒŒ ๋งค๋ฒˆ ๊ท€์ฐฎ์œผ์‹œ์ฃ ?
Nodemon ์ด๋ผ๋Š” ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ด๋ฅผ ์ž๋™์œผ๋กœ ๋™๊ธฐํ™”ํ•ด์ค๋‹ˆ๋‹ค.

2. Nodemon ์‚ฌ์šฉ ์ „

์ฝ”๋“œ ์ˆ˜์ • ์ „ :

// server.js
import express from "express"

const app = express();

app.get("/", (req, res) => {
    res.send("Hello World ๐Ÿงก๐Ÿงก๐Ÿงก!!!");
})

์ฝ”๋“œ ์ˆ˜์ • ํ›„ :

// server.js
import express from "express"

const app = express();

app.get("/", (req, res) => {
    res.send("์ˆ˜์ • ํ›„ : Hello World!!!");
});

๊ทธ๋Ÿฐ๋ฐ, ์ฝ”๋“œ๋ฅผ ์ˆ˜์ •ํ•˜๊ณ  ๋ธŒ๋ผ์šฐ์ €์—์„œ F5 ๋ˆŒ๋Ÿฌ์„œ ํŽ˜์ด์ง€๋ฅผ ๋ฆฌํ”„๋ ˆ์‹œํ•ด๋ด๋„ ์•„๋ฌด๋Ÿฐ ๋ณ€ํ™”๊ฐ€ ์—†์Œ.
-> ์„œ๋ฒ„๋ฅผ ๋ˆ ๋‹ค์Œ์— ๋‹ค์‹œ ์ผœ์•ผ ์ˆ˜์ •์‚ฌํ•ญ์ด ๋ฐ˜์˜๋จ. ๊ทธ๋ž˜์„œ ๐Ÿ’ฅ๐Ÿ’ฅNodemon ์ด ํ•„์š”ํ•˜๋‹ค!!!๐Ÿ’ฅ๐Ÿ’ฅ

์„œ๋ฒ„ ์žฌ์‹œ์ž‘ ํ›„ :
์ˆ˜์ • ์‚ฌํ•ญ์ด ๋ฐ˜์˜๋˜๋ ค๋ฉด, ํ˜„์žฌ ์ž‘๋™ ์ค‘์ธ ์„œ๋ฒ„ ์ข…๋ฃŒ ํ›„ ํ„ฐ๋ฏธ๋„์—์„œ npm run start ์ž…๋ ฅํ•˜์—ฌ ์„œ๋ฒ„๋ฅผ ์žฌ์‹œ์ž‘ํ•ด์•ผ ํ•จ.

// ํ„ฐ๋ฏธ๋„์—์„œ Ctrl + c ๋ˆŒ๋Ÿฌ ํ˜„์žฌ ์ž‘๋™ ์ค‘์ธ ์„œ๋ฒ„ ์ข…๋ฃŒ ํ›„ ๋‹ค์Œ ๋ช…๋ น์–ด ์‹คํ–‰
npm run start

3. Nodemon ์‚ฌ์šฉ ํ›„

* Nodemon ์„ค์น˜

npm install nodemon -D

nodemon ์„ค์น˜ ์‹œ ๋ช…๋ น์–ด์˜ ์ฐจ์ด

  • npm install nodemon : package.json ํŒŒ์ผ์— ์žˆ๋Š” "dependencies" ์— ์ถ”๊ฐ€
  • npm install nodemon -D : -D ๋Š” development mode์˜ ์•ฝ์ž, package.json ํŒŒ์ผ์— ์žˆ๋Š” "devDependencies" ์— ์ถ”๊ฐ€

development mode : local์—์„œ ํ•  ๋•Œ๋งŒ ์‚ฌ์šฉ์„ ํ•˜๊ฒ ๋‹ค. ๋ผ๋Š” ๋œป์ด๋‹ค!

* Script ์ž‘์„ฑ

// package.json
"scripts": {
    // (๋ณ€๊ฒฝ ์ „) node๋ฅผ ์ด์šฉํ•ด์„œ index.js๋ฅผ ์‹œ์ž‘
    "start": "node index.js",
    // (๋ณ€๊ฒฝ ํ›„) nodemon์„ ์ด์šฉํ•ด์„œ index.js๋ฅผ ์‹œ์ž‘
    "backend" : "nodemon index.js",  
    // ("backend" ๋ž€ ์ด๋ฆ„์€ ๋งˆ์Œ๋Œ€๋กœ ํ•ด๋„ ๋œ๋‹ค.)
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  • ๋ณ€๊ฒฝ ์ „ : "script" ์—์„œ์˜ "start" ๋ฅผ ์ด์šฉํ•ด์„œ npm run start ๋กœ ์„œ๋ฒ„ ์ผฐ์Œ.
  • ๋ณ€๊ฒฝ ํ›„ : "script" ์— "backend" : "nodemon index.js" ๋ฅผ ์ถ”๊ฐ€ํ•ด์ฃผ๋ฉด ์ด์ œ, nodemon์„ ์ด์šฉํ•ด์„œ ์„œ๋ฒ„๋ฅผ ์ผœ๊ฒ ๋‹ค๋Š” ๋œป์ž„. "backend" ๋ž€ ์ด๋ฆ„ ๋Œ€์‹  "dev"๋ผ๊ณ  ํ•ด๋„ ๋˜๊ณ .. ๋งˆ์Œ๋Œ€๋กœ ํ•ด๋„ ๋จ.

* Nodemon ์„ ์ด์šฉํ•ด์„œ ์„œ๋ฒ„ ์‹œ์ž‘ํ•˜๊ธฐ

// ์„œ๋ฒ„ ๊ตฌ๋™ ์‹œ ์ž…๋ ฅํ•  ํ„ฐ๋ฏธ๋„ ๋ช…๋ น์–ด
npm run backend

์„œ๋ฒ„๋ฅผ ๊ป๋‹ค ์ผœ์ง€ ์•Š์•„๋„ ๋ฐ”๋€ ๋ณ€๊ฒฝ์‚ฌํ•ญ๋“ค์ด ํŽ˜์ด์ง€ ์ƒˆ๋กœ๊ณ ์นจ๋งŒ์œผ๋กœ ๋‚˜ํƒ€๋‚จ.




profile
ํ’€ ์Šคํƒ ๊ฐœ๋ฐœ์ž๋ฅผ ์ง€ํ–ฅํ•˜๋Š” ๊ฐœ๋ฐœ์ž ์ƒˆ๋‚ด๊ธฐ์ž…๋‹ˆ๋‹ค.

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