๐ nodemon ์คํ ๋ฐฉ์ ์ฐจ์ด: nodemon app.js vs npx nodemon app.js (์ค์น๋ถํฐ ์คํ๊น์ง!) ๐
1. nodemon์ด๋? ๐ฅ
โ nodemon์ Node.js ์ ํ๋ฆฌ์ผ์ด์ ์ ์๋์ผ๋ก ๊ฐ์ํ๊ณ ๋ณ๊ฒฝ ์ฌํญ์ด ๊ฐ์ง๋๋ฉด ์๋์ผ๋ก ์๋ฒ๋ฅผ ์ฌ์์ํ๋ ๊ฐ๋ฐ ๋๊ตฌ์.
โ Node.js๋ก ์๋ฒ๋ฅผ ์คํํ๋ฉด ์ฝ๋ ๋ณ๊ฒฝ ์ ๋งค๋ฒ Ctrl + C๋ก ์๋ฒ๋ฅผ ์ข
๋ฃํ๊ณ ๋ค์ ์คํํด์ผ ํ๋ ๋ฒ๊ฑฐ๋ก์์ด ์์.
โ nodemon์ ์ฌ์ฉํ๋ฉด ์ฝ๋ ๋ณ๊ฒฝ์ ๊ฐ์งํ์ฌ ์๋์ผ๋ก ์๋ฒ๋ฅผ ์ฌ์์ํด ์ค.
โ ์ฃผ๋ก ๋ฐฑ์๋ ๊ฐ๋ฐ ์ ๊ฐ๋ฐ ํ๊ฒฝ์์ ์ฌ์ฉ๋จ.
๐น ๊ธฐ๋ณธ ์ฌ์ฉ๋ฒ
nodemon app.js
- app.js ํ์ผ์ ์คํํ๊ณ , ํ์ผ ๋ณ๊ฒฝ์ด ๊ฐ์ง๋๋ฉด ์๋์ผ๋ก ๋ค์ ์คํ๋จ.
๐น ํน์ ํ์ผ ํ์ฅ์๋ฅผ ๊ฐ์ํ๋ ค๋ฉด?
nodemon --ext js,json
- .js, .json ํ์ผ์ด ๋ณ๊ฒฝ๋ ๋๋ง ์ฌ์์ํ๋๋ก ์ค์ .
๐น ์คํ ์ ํน์ ์คํฌ๋ฆฝํธ ์คํ ๊ฐ๋ฅ
nodemon --exec python myscript.py
- nodemon์ ์ฌ์ฉํ์ฌ Node.js๊ฐ ์๋ Python ์คํฌ๋ฆฝํธ๋ ์คํ ๊ฐ๋ฅ.
2. nodemon ์ค์น ๋ฐฉ๋ฒ ๐ ๏ธ
โ ์ ์ญ(๊ธ๋ก๋ฒ) ์ค์น:
npm install -g nodemon
- ๋ชจ๋ ํ๋ก์ ํธ์์ ์ฌ์ฉ ๊ฐ๋ฅํ์ง๋ง, ํ๋ก์ ํธ๋ง๋ค ๋ฒ์ ์ด ๋ค๋ฅผ ์ ์์.
- nodemon app.js ๋ช ๋ น์ด๋ฅผ ์ด๋์๋ ์คํ ๊ฐ๋ฅ.
โ ๋ก์ปฌ(ํ๋ก์ ํธ ๋ด) ์ค์น:
npm install --save-dev nodemon
- ํ๋ก์ ํธ ํด๋ ๋ด node_modules/.bin/์ ์ค์น๋จ.
- package.json์ devDependencies์ ํฌํจ๋จ.
- ํด๋น ํ๋ก์ ํธ ํด๋ ๋ด์์ ์คํํด์ผ ํจ.
3. npx๋? ๐ก
โ npx๋ npm์ ํฌํจ๋ ํจํค์ง ์คํ ๋๊ตฌ๋ก, ํ๋ก์ ํธ์ ์ค์น๋ ํจํค์ง๋ฅผ ์คํํ ๋ ์ฌ์ฉ๋จ.
โ npx ํจํค์ง๋ช
์ ์
๋ ฅํ๋ฉด ํ์ฌ ํ๋ก์ ํธ์ node_modules/.bin/์์ ๋จผ์ ์คํ
โ ๋ง์ฝ ํด๋น ํจํค์ง๊ฐ ์ค์น๋์ง ์์๋ค๋ฉด, ์๋์ผ๋ก ๋ค์ด๋ก๋ํ์ฌ ์คํ (์ผ์์ ๋ค์ด๋ก๋ ๊ฐ๋ฅ)
๐น ์๋ฅผ ๋ค์ด, npx nodemon app.js๋ฅผ ์คํํ๋ฉด:
- ํ์ฌ ํ๋ก์ ํธ ๋ด์ node_modules/.bin/nodemon์ ์ฐพ์ ์คํ
- ๋ง์ฝ ์กด์ฌํ์ง ์์ผ๋ฉด, npm ๋ ์ง์คํธ๋ฆฌ์์ nodemon์ ๋ค์ด๋ก๋ํ์ฌ ์คํ
- ๋ค์ด๋ก๋๋ ํจํค์ง๋ ์บ์๋์ด, ๋ค์ ์คํ ์ ๋ ๋น ๋ฅด๊ฒ ์คํ๋จ
๐ ์ฆ, npx nodemon app.js๋ ํญ์ ํ๋ก์ ํธ์ ๋ง๋ nodemon์ ์คํํ๋ฉฐ, ์์ผ๋ฉด ๋ค์ด๋ก๋ํ์ฌ ์ฌ์ฉํจ.
4. nodemon app.js vs npx nodemon app.js ์ฐจ์ด์ ๐
์คํ ๋ฐฉ์ | ๋์ ์๋ฆฌ | ์คํ ๊ฐ๋ฅ ์กฐ๊ฑด |
nodemon app.js | ํ๊ฒฝ ๋ณ์์ ๋ฑ๋ก๋ nodemon ์คํ | 1) ๊ธ๋ก๋ฒ ์ค์นํ ๊ฒฝ์ฐ 2) node_modules/.bin/์ด PATH์ ํฌํจ๋ ๊ฒฝ์ฐ |
npx nodemon app.js | ํ์ฌ ํ๋ก์ ํธ์ node_modules/.bin/nodemon ์คํ | nodemon์ด ๋ก์ปฌ์ ์ค์น๋์ด ์๊ฑฐ๋, ์์ผ๋ฉด ์๋ ๋ค์ด๋ก๋ |
5. nodemon app.js๋ ์คํ๋๋ ์ด์ ๋? ๐ค
์ด ์ง๋ฌธ์ด ๋์ค๋ ์ด์ ๋ ํ๋ก์ ํธ์ nodemon์ ๋ก์ปฌ๋ก ์ค์นํ์ ๋, npx nodemon app.js๊ฐ ์๋๋ผ nodemon app.js๋ ์คํ๋๋ค๋ ์ ๋๋ฌธ!
"๊ทธ๋ผ ๊ตณ์ด npx๋ฅผ ์จ์ผ ํ๋?" ๋ผ๋ ์๋ฌธ์ด ๋ค ์ ์๊ธฐ ๋๋ฌธ์.
๐ (1) node_modules/.bin/์ด PATH์ ํฌํจ๋ ๊ฒฝ์ฐ
- npm์ ์คํ ๊ฐ๋ฅํ ๋ฐ์ด๋๋ฆฌ๋ฅผ node_modules/.bin/์ ์ ์ฅํจ.
- ํฐ๋ฏธ๋์์ ๋ช ๋ น์ด๋ฅผ ์ ๋ ฅํ ๋, node_modules/.bin/ ๊ฒฝ๋ก๋ฅผ ์๋์ผ๋ก ๊ฒ์ํ๋ ๊ฒฝ์ฐ๊ฐ ์์.
- ์ด ๊ฒฝ์ฐ, nodemon์ ๊ธ๋ก๋ฒ๋ก ์ค์นํ์ง ์์๋๋ผ๋ nodemon app.js๊ฐ ์คํ๋ ์ ์์.
๐น ํ์ธ ๋ฐฉ๋ฒ (node_modules/.bin์ด PATH์ ํฌํจ๋์๋์ง ์ฒดํฌ)
echo $PATH # Mac/Linux
echo %PATH% # Windows
๐ (2) ๊ธ๋ก๋ฒ๋ก ์ค์น๋ nodemon์ด ์คํ๋๋ ๊ฒฝ์ฐ
- ๋ง์ฝ nodemon์ npm install -g nodemon์ผ๋ก ๊ธ๋ก๋ฒ ์ค์นํ๋ค๋ฉด,
nodemon app.js ์ ๋ ฅ ์ ์ ์ญ nodemon์ด ์คํ๋ ์๋ ์์. - ์ด ๊ฒฝ์ฐ ํ๋ก์ ํธ๋ง๋ค ๋ค๋ฅธ nodemon ๋ฒ์ ์ ์ฌ์ฉํ ์ ์์ด,
์์๊ณผ ๋ค๋ฅด๊ฒ ๋์ํ ๊ฐ๋ฅ์ฑ์ด ์์.
โ
์ฆ, nodemon app.js๋ฅผ ์คํํ ๋ ํ๋ก์ ํธ์ ์ค์น๋ nodemon์ด ์คํ๋ ์๋ ์๊ณ ,
๊ธ๋ก๋ฒ ์ค์น๋ nodemon์ด ์คํ๋ ์๋ ์์ด์, ํญ์ ๋ช
ํํ ์คํ์ ์ํด npx๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ์์ ํจ.
6. ์ด๋ค ๊ฑธ ์จ์ผ ํ ๊น? (์ถ์ฒ) ๐ฏ
โ
npx nodemon app.js๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ๊ฐ์ฅ ์์ ํจ!
โ ๊ธ๋ก๋ฒ ์ค์น ์ฌ๋ถ์ ๊ด๊ณ์์ด ๋์
โ ํ๋ก์ ํธ์ ๋ง๋ nodemon ๋ฒ์ ์ ์คํ
โ nodemon์ด ์์ผ๋ฉด ์๋ ๋ค์ด๋ก๋ ํ ์คํ
โ
๊ทธ๋ฅ nodemon app.js๋ ๊ด์ฐฎ์ง๋ง...
โ ํ๋ก์ ํธ ํด๋์์ ์คํํ๋ฉด ๋ฌธ์ ์์.
โ ํ์ง๋ง ๋ค๋ฅธ ํ๋ก์ ํธ์์ ์คํํ ๋, ๊ธ๋ก๋ฒ ๋ฒ์ ์ด ์คํ๋ ๊ฐ๋ฅ์ฑ์ด ์์.
๐ ๊ฒฐ๋ก
โ
๋ก์ปฌ ์ค์น(-D) ํ npx nodemon app.js๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ๊ฐ์ฅ ์์ ์ !
๐ ๊ธ๋ก๋ฒ ์ค์น ์์ด๋ ๊ฐ๋ฅํ๊ณ , ํ๋ก์ ํธ๋ณ๋ก ์ผ๊ด๋ ๋ฒ์ ์ ์ง ๊ฐ๋ฅ! ๐ก
'Javascript&Typescript > Node.js' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Node.js] 'nodemon' ๋ก์ปฌ ์ค์น vs ์ ์ญ ์ค์น ์ ๋ฆฌ (0) | 2025.03.27 |
---|---|
[Node.js / Error] return process.dlopen(module, path.toNamespacedPath(filename)); (0) | 2024.04.08 |
[Error] Error: listen EADDRINUSE: address already in use :::5000 (0) | 2024.01.10 |
[Node.js] Express (0) | 2024.01.10 |
[Node.js] npm (0) | 2024.01.07 |
๋๊ธ