05. Parcel

5. Parcel

  • parcel์ด๋ž€?

    • ๋นŒ๋“œ๋ž€?

      • ๊ฐ€์žฅ ํฐ ๊ฒƒ์€ ๋ฒˆ๋“ค๋Ÿฌ

      • ๋ฒˆ๋“ค๋Ÿฌ, ๋ชจ๋“ˆ, zero configuration

      • ๋ธŒ๋ผ์šฐ์ €๋“ค์ด ์ง€์›์„ ์•ˆํ•ด์„œ ํ•˜๋‚˜์˜ ํŒŒ์ผ๋กœ ํ•ฉ์ณ์ฃผ๋Š” ๊ฒƒ์„ ๋ฒˆ๋“ค๋Ÿฌ, ํ•ฉ์น˜๋Š” ํ–‰๋™์„ ๋นŒ๋“œ ๋ผ๊ณ  ํ•จ

      • ์ตœ์‹  JS๋ฅผ ์ง€์›Œํ•˜์ง€ ์•Š๋Š” ๋ธŒ๋ผ์šฐ์ €๋ฅผ ์œ„ํ•ด JS๋ฅผ ๋ณ€ํ™˜ ์‹œ์ผœ์ค€๋‹ค๊ฑฐ๋‚˜, TS๋ฅผ JS๋กœ ๋ณ€ํ™˜์‹œ์ผœ ์ค€๋‹ค๊ฑฐ๋‚˜,

      • ํŒŒ์ผ ํ•ฉ์น˜๋Š” ๊ฒƒ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๊ทธ๋Ÿฐ ๋„๊ตฌ๊นŒ์ง€ ํฌํ•จ

    • SWC: rust๋กœ ๋งŒ๋“  TS compiler ๋ฅผ ์‚ฌ์šฉํ•ด์„œ ๊ธฐ์กด์˜ ๊ฒƒ๋ณด๋‹ค ๋น ๋ฆ„ (ํ•œ๊ตญ์ธ์ด ๋งŒ๋“ค)

      • ES Module์„ ์ ๊ทน ํ™œ์šฉํ•˜๋Š” Vite๋„ ์—„์ฒญ ๋น ๋ฆ„

  • ์„ค์ • ๋ฐ”๊ฟ€ ๊ฒƒ ๋”ฑ ํ•˜๋‚˜, ๋ฐฉ๋ฒ• ๋‘๊ฐ€์ง€

      1. ์†Œ์Šค - package.json => "source": "./index.html"

      1. ํŒจํ‚ค์ง€ - npm i parcel-reporter-static-files-copy

      2. ๊ทธ ํ›„ .parcelrc ํŒŒ์ผ์ž‘์„ฑ

      3. .parcelrc์— ๋“ค์–ด๊ฐˆ ๋‚ด์šฉ

        {
          "extends": ["@parcel/config-default"],
          "reporters":  ["...", "parcel-reporter-static-files-copy"]
        }
      4. => static ํด๋”์˜ ํŒŒ์ผ์„ ์ •์  ํŒŒ์ผ๋กœ Serving ํ•  ์ˆ˜ ์žˆ๋‹ค.

  • ๋ช…๋ น์–ด

    • npx parcel

    • npx parcel index.html

      • package.json์—์„œ source๋ฅผ index.html๋กœ ๋ฐ”๊ฟˆ

    • npx parcel index.html --port 8080

    • npx parcel build (/ npm run build)

      • dist ํด๋”๊ฐ€ ๋งŒ๋“ค์–ด์ง (์‚ฌ์‹ค ์›๋ž˜ ์žˆ์—ˆ์Œ npm startํ•ด๋„ ๋งŒ๋“ค์–ด ๋†“๊ณ  ํ™œ์šฉํ•จ )

    • npx servor ./dist

      • config๊ฐ€ ์—†๋Š” ์„œ๋ฒ„์ž„

      • ๋ฐฐํฌ๋˜์—ˆ์„ ๋•Œ๋ฅผ ๋ณด๊ณ ์‹ถ๋‹ค๋ฉด

      • serv0r (zero configuration)

    • rm -rf dist

      • ๊ฐœ๋ฐœํ™˜๊ฒฝ์œผ๋กœ ๋‹ค์‹œ ๋Œ์•„์˜ค๋ ค๋ฉด

5-2. ESLint

1. ๋ชฉ์ 

  • ์Šคํƒ€์ผ ํ†ต์ผ

  • ์ž ์žฌ์  ๋ฌธ์ œ ๋ฐœ๊ฒฌ

  • ๋ฒ ์ŠคํŠธ ํ”„๋ž™ํ‹ฐ์Šค ์ถ”์ฒœ -> ์ตœ์‹  ํŠธ๋ Œ๋“œ๋ฅผ ํ•™์Šตํ•˜๋Š”๋ฐ ํ™œ์šฉ ๊ฐ€๋Šฅ

2. ๊ฐœ์š”

  • lint : ๋ณดํ’€?

  • ์†Œ์Šค์ฝ”๋“œ๋ฅผ ๋ถ„์„ํ•˜์—ฌ ์˜์‹ฌ์Šค๋Ÿฌ์šด ๊ณณ์— flag๋‹ฌ์•„๋†“๊ธฐ

  • ์ •์  ํ”„๋กœ๊ทธ๋žจ ๋ถ„์„: ์‹คํ–‰๋˜๋Š” ์‹œ๊ฐ„์ด ๋น„๊ต์  ์งง๊ณ  ํ”„๋กœ๊ทธ๋žจ์„ ๋ถ„์„ํ•จ

  • ๋™์  ํ”„๋กœ๊ทธ๋žจ: ๋ง‰ ์‹คํ–‰์„ ํ•˜๋‹ค๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๋ฐ˜ํ™˜ํ•˜์ง€ ์•Š๋А ๊ฒŒ ์ž‡๋‹ค. ์ด๋Ÿฌ๋ฉด ๋™์ 

  • TSlint๋„ ๋”ฐ๋กœ ์žˆ์—ˆ๋Š”๋ฐ ๊ทธ๊ฒƒ๊นŒ์ง€ ์ปค๋ฒ„๋ฅผ ํ•ด์ฃผ๊ฒŒ ๋˜์—ˆ๋‹ค..

3. ์‚ฌ์šฉ๋ฒ•

  • npx eslint --ext .tsx

  • npm eslint --fix --ext .js,.jsx,.ts,.tsx . ํ•˜๋ฉด ๋ฐ”๋กœ ๊ณ ์ณ์คŒ

    • ์ด ๋ช…๋ น์–ด๋ฅผ "lint"์— ์ €์žฅํ•ด๋†“์œผ๋ฉด ์•ž์œผ๋กœ npm run lintํ•˜๋ฉด ์‚ฌ์šฉ๊ฐ€๋Šฅ~!

  • ์‹ ๊ฒฝ์“ฐ์ผ๋•Œ๋งˆ๋‹ค ํ„ฐ๋ฏธ๋„์— ๊ฐ€์„œ ์ €๊ฑธ ์ณ์„œ ๊ณ ์ณ์ฃผ๋Š” ๊ฒƒ์€ ๋„ˆ๋ฌด ๋ฒˆ๊ฑฐ๋กญ๊ธฐ ๋•Œ๋ฌธ์—,

    • eslint ํ™•์žฅํ”„๋กœ๊ทธ๋žจ esLint ์„ค์น˜ (install)

    • .vscode ํด๋” ์•ˆ์— settings.json ๋งŒ๋“ค์–ด์„œ

    • npm run lint & npm run check

4. ์ถ”์ฒœํ•˜๋Š” ์—ฐ์Šต ๋ฐฉ๋ฒ•

์ง€๊ธˆ๊นŒ์ง€์˜ ๋ชจ๋“  ๊ณผ์ •์„ ๋งค์ผ ์•„์นจ ํ•œ ๋ฒˆ์”ฉ ํ•ด๋ณด๋Š” ๊ฒƒ!

Last updated