esbuild

esBuild

๋งค์šฐ ๋น ๋ฅธ Web์šฉ ๋ฒˆ๋“ค๋Ÿฌ

  • Figma์˜ CTO์— ์˜ํ•ด ๋งŒ๋“ค์–ด์ง. ์ฐจ์„ธ๋ฐ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋ฒˆ๋“ค๋Ÿฌ

  • esbuild ๋ฒˆ๋“ค๋Ÿฌ ํ”„๋กœ์ ํŠธ์˜ ์ฃผ์š” ๋ชฉํ‘œ๋Š” ๋นŒ๋“œ ๋„๊ตฌ ์„ฑ๋Šฅ์˜ ์ƒˆ๋กœ์šด ์‹œ๋Œ€๋ฅผ ์—ด๊ณ , ๊ทธ ๊ณผ์ •์—์„œ ์‚ฌ์šฉํ•˜๊ธฐ ์‰ฌ์šด ๋ฒˆ๋“ค๋Ÿฌ๋ฅผ ๋งŒ๋“œ๋Š” ๊ฒƒ

  • Go ์–ธ์–ด๋ฅผ ์ด์šฉํ•ด ๋ณ‘๋ ฌ ์ฒ˜๋ฆฌ๋กœ ๋‹ค๋ฅธ ๋ฒˆ๋“ค๋Ÿฌ์— ๋น„ํ•ด ์›”๋“ฑํ•œ ์†๋„๋ฅผ ์ง€๋‹˜

  • Typescript compile error๋ฅผ ๋‚ด๋ฑ‰์ง€ ์•Š์Œ, typescript๋ฅผ ๋”ฐ๋กœ ์ถ”๊ฐ€ํ•˜๊ณ  tsc๋ฅผ ํ•ด์ฃผ์–ด์•ผํ•จ

  • Babel, Rollup, Teser์˜ ์—ญํ• ์„ ๋Œ€์‹ ํ•  ์ˆ˜๋„ ์žˆ๋‹ค.

  • ์—ฌ๋Ÿฌ ํŽธ๋ฆฌํ•œ ๊ธฐ๋Šฅ์„ ๋งŽ์ด ๊ฐ€์ง€๊ณ  ์žˆ์ง€๋งŒ esbuild๋กœ ๋ชจ๋“  ๊ฒƒ์„ ๋‹ค ํ•˜๊ธฐ์—” ์–ด๋ ค์šด ๋ถ€๋ถ„๋“ค์ด ์žˆ์Œ

  • ์ฃผ๋กœ ์ž‘์€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ๋งŒ๋“ค๊ฑฐ๋‚˜, ๋‹ค๋ฅธ ๋ฒˆ๋“ค๋Ÿฌ์— ๋กœ๋”๋กœ ์ฐธ์—ฌํ•ด์„œ Babel, Terser ๋Œ€์‹  ์‚ฌ์šฉํ•˜๋Š” ์šฉ๋„

// build.js
require('esbuild').build({
  entryPoints: ['src/index.ts'],
  outfile: 'dist/index.js',
  bundle: true, // false๋ฉด ํŠธ๋žœ์ŠคํŒŒ์ผ๋งŒ ํ•˜๊ฒŒ๋จ, true์ด๋ฉด treeShaking on
  platform: "node",
  minify: true,
})
"scripts:" {
  "build": "tsc && node build.js"
}

Last updated