Bundler/Parcel

Parcel์˜ ์ปค๋งจ๋“œ ๋ผ์ธ ์ธํ„ฐํŽ˜์ด์Šค(CLI) ๐ŸŽจ

yunieyunie 2022. 11. 29. 17:15

๐ŸŽจ CLI (Commend Line Interface)

CLI๋Š” ํ„ฐ๋ฏธ๋„์„ ํ†ตํ•ด ์‚ฌ์šฉ์ž์™€ ์ปดํ“จํ„ฐ๊ฐ€ ์ƒํ˜ธ ์ž‘์šฉํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ๋ฌธ์ž์—ด ๋ช…๋ น์„ ์ž…๋ ฅํ•˜๋Š” ๊ฒƒ์„ ๋งํ•œ๋‹ค.
๋‹ค์Œ ๋งํฌ์— ๋“ค์–ด๊ฐ€ Parcel์˜ CLI๋ฅผ ๊ตฌ์ฒด์ ์œผ๋กœ ํ™•์ธํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ๊ทธ ์ค‘ ์ค‘์š”ํ•œ ๋ช‡ ๊ฐ€์ง€์— ๋Œ€ํ•ด ์•Œ์•„๋ณด์ž
https://ko.parceljs.org/cli.html


Serve

๊ฐœ๋ฐœ์šฉ ์„œ๋ฒ„๋ฅผ ์‹œ์ž‘ํ•˜๋Š” ๋ช…๋ น์–ด๋กœ ์•ฑ์ด ์ˆ˜์ •๋˜๋ฉด ์ž๋™์œผ๋กœ ๋‹ค์‹œ ๋นŒ๋“œํ•˜๊ณ , ๋น ๋ฅธ ๊ฐœ๋ฐœ์„ ์œ„ํ•ด ๋น ๋ฅธ ๋ชจ๋“ˆ ๊ต์ฒด๋ฅผ ์ง€์›ํ•œ๋‹ค.

parcel index.html

Build

์ œํ’ˆํ™”ํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ๋ช…๋ น์–ด๋กœ, assets์„ ํ•œ ๋ฒˆ ๋นŒ๋“œํ•œ๋‹ค.
์ด ๊ณผ์ •์—์„œ ์ฝ”๋“œ ์ตœ์†Œํ™”(๋ฏธ๋‹ˆํŒŒ์ด์ผ€์ด์…˜)๊ฐ€ ํ™œ์„ฑํ™”๋˜๊ณ  ํ™˜๊ฒฝ๋ณ€์ˆ˜๊ฐ€ NODE_ENV=production ๋กœ ์„ค์ •๋œ๋‹ค.

parcel build index.html

๊ฒฐ๊ณผ๋ฌผ ๋””๋ ‰ํ† ๋ฆฌ


๊ธฐ๋ณธ๊ฐ’์€ dist์ด๋ฉฐ ๋‹ค๋ฅธ ํด๋”๋ช…์œผ๋กœ ๋ณ€๊ฒฝ์„ ์›ํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ๋ช…๋ น์–ด์ž…๋‹ˆ๋‹ค.
build/output ๋ถ€๋ถ„์— dist๋ฅผ ๋Œ€์‹ ํ•  ํด๋” ๊ตฌ์กฐ๋ฅผ ๋ช…์‹œํ•˜๋ฉด ๋œ๋‹ค.

parcel build entry.js --out-dir build/output
  //๋˜๋Š”
  parcel build entry.js -d build/output

ํฌํŠธ ๋ฒˆํ˜ธ

๊ธฐ๋ณธ๊ฐ’์€ 1234์ธ๋ฐ ๊ฐœ๋ฐœ ์„œ๋ฒ„ ์˜คํ”ˆ ์‹œ์— ํฌํŠธ ๋ฒˆํ˜ธ๋ฅผ ๋ณ€๊ฒฝํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ๋ช…๋ น์–ด๋กœ ์ˆซ์ž๋ฅผ ๋ฐ”๊ฟ€ ์ˆ˜ ์žˆ๋‹ค.

parcel serve index.html --port 0605

๋ธŒ๋ผ์šฐ์ €์—์„œ ์—ด๊ธฐ

๊ธฐ๋ณธ๊ฐ’์€ ๋น„ํ™œ์„ฑ์ด๋ฉฐ ์•„๋ž˜ ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด ๊ฐœ๋ฐœ ์„œ๋ฒ„๋ฅผ ์˜คํ”ˆํ•˜๊ฒŒ ๋˜๋ฉด ์ž๋™์œผ๋กœ ๋ธŒ๋ผ์šฐ์ €์— ์—ฐ๊ฒฐ๋œ๋‹ค.

parcel index.html --open

๋น ๋ฅธ ๋ชจ๋“ˆ ๊ต์ฒด ๋น„ํ™œ์„ฑํ™”

๊ธฐ๋ณธ๊ฐ’์€ HMR (Hot Module Replacement) ํ™œ์„ฑ์ด๋ฉฐ ๋Ÿฐํƒ€์ž„์— ํŽ˜์ด์ง€ ์ƒˆ๋กœ๊ณ ์นจ ์—†์ด ์ˆ˜์ •๋œ ๋‚ด์šฉ์„ ์ž๋™์œผ๋กœ ๊ฐฑ์‹ ํ•˜๋Š” ๋ฐฉ์‹์„ ๋งํ•œ๋‹ค.
ํ•„์š”ํ•˜์ง€ ์•Š๋‹ค๋ฉด ๋น„ํ™œ์„ฑํ™” ์‹œํ‚ฌ ์ˆ˜ ์žˆ๋‹ค.

parcel index.html --no-hmr

ํŒŒ์ผ์‹œ์Šคํ…œ ์บ์‹œ ๋น„ํ™œ์„ฑํ™”

๊ธฐ๋ณธ๊ฐ’์€ ์บ์‹œ ํ™œ์„ฑ์œผ๋กœ ์ด๋Š” ๊ฐœ๋ฐœ ์„œ๋ฒ„๋ฅผ ์—ด๊ฑฐ๋‚˜ ์ œํ’ˆํ™” ํ•  ๋•Œ ์บ์‹œ๊ฐ€ ํ™œ์„ฑํ™” ๋˜์–ด์žˆ์–ด ๋น ๋ฅด๊ฒŒ ๋‚ด์šฉ์ด ์ฒ˜๋ฆฌ๋œ๋‹ค.
๊ฐ€๋” ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ์ƒํ™ฉ๋„ ์žˆ์–ด ํ•„์š”์— ๋”ฐ๋ผ ๋น„ํ™œ์„ฑํ™”ํ•  ์ˆ˜ ์žˆ๋‹ค.



์ ์šฉํ•˜๊ธฐ

์‹ค์ œ๋กœ ๋ช…๋ น์–ด๋ฅผ ์ถ”๊ฐ€ํ•˜์—ฌ ํฌํŠธ ๋ฒˆํ˜ธ๋ฅผ ๋ฐ”๊ฟ”๋ณด์ž
package.json ํŒŒ์ผ์„ ์—ด๊ณ  dev์—์„œ parcel index.html ๋’ค์— --port 0605 ๋ฅผ ์ถ”๊ฐ€ํ•ด๋ณด์ž.
๊ทธ๋ฆฌ๊ณ  npm run dev๋กœ ๊ฐœ๋ฐœ ์„œ๋ฒ„๋ฅผ ์—ด๋ฉด ๋กœ์ปฌ ํ˜ธ์ŠคํŠธ์˜ ๋ฒˆํ˜ธ๊ฐ€ 0605๋กœ ๋ฐ”๋€ ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.



๊ทธ๋Ÿฐ๋ฐ Parcel bundler๋Š” ์ตœ๋Œ€ํ•œ ๊ฐœ๋ฐœ์ž๊ฐ€ ๋”ฐ๋กœ ์˜ต์…˜์„ ์ œ๊ณตํ•˜์ง€ ์•Š๊ณ  ์ž๋™ํ™”ํ•ด์„œ ๋™์ž‘์‹œํ‚ค๋Š” ๊ฒƒ์ด ํ•ต์‹ฌ ๊ฐœ๋…์ด๊ธฐ ๋•Œ๋ฌธ์— ํ•„์š”์— ๋”ฐ๋ผ์„œ๋งŒ ์˜ต์…˜์„ ์ˆ˜์ •ํ•˜๋„๋ก ํ•˜์ž