DEV

๋งค๋ฒˆ yarn build ํ•˜์ง€ ์•Š๊ณ  ์ž๋™ ๋นŒ๋“œ ๋ฐ ์žฌ์‹œ์ž‘ํ•˜๋Š” ๋ฐฉ๋ฒ•

Beomsu Koh 2024. 1. 6.

๐Ÿš€ Yarn์„ ์‚ฌ์šฉํ•œ TypeScript ํ”„๋กœ์ ํŠธ์˜ ์ž๋™ ๋นŒ๋“œ ๋ฐ ์žฌ์‹œ์ž‘ ์„ค์ • ๋ฐฉ๋ฒ•

TypeScript ํ”„๋กœ์ ํŠธ์—์„œ ํŒŒ์ผ ๋ณ€๊ฒฝ ์‹œ ์ž๋™์œผ๋กœ ๋นŒ๋“œํ•˜๊ณ  Electron ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์žฌ์‹œ์ž‘ํ•˜๋ ค๋ฉด, Nodemon๊ณผ TypeScript ์ปดํŒŒ์ผ๋Ÿฌ(tsc)๋ฅผ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

1. nodemon.json ์„ค์ •

Nodemon ์„ค์ • ํŒŒ์ผ(nodemon.json)์„ ์ƒ์„ฑํ•˜๊ณ , TypeScript ํŒŒ์ผ์˜ ๋ณ€๊ฒฝ์„ ๊ฐ์‹œํ•˜๋„๋ก ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

{   "watch": ["src/**/*.ts"],   "ext": "ts",   "exec": "yarn build && electron ." } 
  • watch: ๊ฐ์‹œํ•  ํŒŒ์ผ์˜ ๊ฒฝ๋กœ ๋ฐ ํŒจํ„ด์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.
  • ext: ๊ฐ์‹œํ•  ํŒŒ์ผ์˜ ํ™•์žฅ์ž๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.
  • exec: ํŒŒ์ผ ๋ณ€๊ฒฝ ์‹œ ์‹คํ–‰ํ•  ๋ช…๋ น์–ด์ž…๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ๋Š” yarn build๋กœ TypeScript ํŒŒ์ผ์„ ์ปดํŒŒ์ผํ•˜๊ณ , electron .์œผ๋กœ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

2. package.json ์Šคํฌ๋ฆฝํŠธ ์„ค์ •

package.json์— ํ•„์š”ํ•œ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

{   "scripts": {     "build": "tsc",     "start": "nodemon"   },   // ๊ธฐํƒ€ ์„ค์ •… } 
  • build: TypeScript ์ปดํŒŒ์ผ๋Ÿฌ(tsc)๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ”„๋กœ์ ํŠธ๋ฅผ ๋นŒ๋“œํ•ฉ๋‹ˆ๋‹ค.
  • start: nodemon์„ ์‹คํ–‰ํ•˜์—ฌ ํŒŒ์ผ ๋ณ€๊ฒฝ ๊ฐ์ง€ ๋ฐ ์ž๋™ ๋นŒ๋“œ ๋ฐ ์žฌ์‹œ์ž‘์„ ํ•ฉ๋‹ˆ๋‹ค.

3. tsconfig.json ์„ค์ •

tsconfig.json ํŒŒ์ผ์—์„œ TypeScript ์ปดํŒŒ์ผ๋Ÿฌ ์„ค์ •์„ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. outDir์„ ์„ค์ •ํ•˜์—ฌ ์ปดํŒŒ์ผ๋œ ํŒŒ์ผ์ด ์ €์žฅ๋  ์œ„์น˜๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

{   "compilerOptions": {     "outDir": "./dist",     // ๊ธฐํƒ€ ์˜ต์…˜…   }   // ๊ธฐํƒ€ ์„ค์ •… } 

4. ํ”„๋กœ์ ํŠธ ์‹คํ–‰

์ด์ œ yarn start ๋ช…๋ น์–ด๋กœ ํ”„๋กœ์ ํŠธ๋ฅผ ์‹คํ–‰ํ•˜๋ฉด, src ๋””๋ ‰ํ† ๋ฆฌ ๋‚ด TypeScript ํŒŒ์ผ์ด ๋ณ€๊ฒฝ๋  ๋•Œ๋งˆ๋‹ค ์ž๋™์œผ๋กœ ๋นŒ๋“œ๋˜๊ณ  Electron ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์žฌ์‹œ์ž‘๋ฉ๋‹ˆ๋‹ค.

yarn start 

์ด ์„ค์ •์„ ํ†ตํ•ด ๊ฐœ๋ฐœ ๊ณผ์ •์„ ๋”์šฑ ํšจ์œจ์ ์œผ๋กœ ๋งŒ๋“ค ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๋ณ€๊ฒฝ์‚ฌํ•ญ์ด ์‹ค์‹œ๊ฐ„์œผ๋กœ ๋ฐ˜์˜๋˜์–ด ๋น ๋ฅธ ํ”ผ๋“œ๋ฐฑ์„ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ ˆํผ๋Ÿฐ์Šค

๋Œ“๊ธ€