[React] 바벨 (Babel)

πŸ“„ 바벨

바벨은 μ΅œμ‹  μžλ°”μŠ€ν¬λ¦½νŠΈ 문법을 μ§€μ›ν•˜μ§€ μ•ŠλŠ” ν™˜κ²½μ—μ„œλ„ μ΅œμ‹  문법을 μ‚¬μš© κ°€λŠ₯ν•˜κ²Œ μžλ°”μŠ€ν¬λ¦½νŠΈ μ½”λ“œλ₯Ό λ³€ν™˜ν•΄μ£ΌλŠ” μ»΄νŒŒμΌλŸ¬μž…λ‹ˆλ‹€.

// Babel Input: ES2015 arrow function
[1, 2, 3].map((n) => n + 1);

// Babel Output: ES5 equivalent
[1, 2, 3].map(function (n) {
  return n + 1;
});

λ¦¬μ•‘νŠΈμ—μ„œλŠ” JSX 문법을 createElementν•¨μˆ˜λ‘œ ν˜ΈμΆœν•˜κΈ° μœ„ν•΄ 바벨을 μ‚¬μš©ν•©λ‹ˆλ‹€.

πŸ“„ 바벨 μ„€μΉ˜

npm install @babel/core @babel/cli @babel/preset-react
  • @babel/core: λ°”λ²¨μ˜ 핡심 κΈ°λŠ₯을 κ°€μ§€κ³  μžˆλŠ” νŒ¨ν‚€μ§€
  • @babel/cli: cliμ—μ„œ μ‚¬μš©ν•  λ°”μ΄λ„ˆλ¦¬κ°€ λ“€μ–΄μžˆλ‹€.
  • @babel/preset-react: λ¦¬μ•‘νŠΈλ₯Ό μœ„ν•œ ν”ŒλŸ¬κ·ΈμΈ μ—¬λŸ¬κ°œλ₯Ό λͺ¨μ•„놓은 것
npx babel --watch src --out-dir , --presets @babel/preset-react

srcλ””λ ‰ν† λ¦¬μ˜ λͺ¨λ“  JSνŒŒμΌμ„ λΆ„μ„ν•˜κ³  λ³€ν™˜ν•œ λ‚΄μš©μ„ μ μš©ν•©λ‹ˆλ‹€.

ν•œλ²ˆ 컴파일 ν•˜κ³  λλ‚˜λŠ” 것이 μ•„λ‹ˆλΌ 파일이 λ°”λ€” λ•Œλ§ˆλ‹€ μžλ™μœΌλ‘œ μ»΄νŒŒμΌμ„ ν•©λ‹ˆλ‹€.

πŸ“„ Plugins

λ°”λ²¨μ—λŠ” 프리셋과 ν”ŒλŸ¬κ·ΈμΈμ΄ μžˆλ‹€.

  • ν”ŒλŸ¬κ·ΈμΈ(Prugins): μ½”λ“œλ₯Ό λ³€ν™˜ν•˜κ²Œ ν•˜λŠ” μž‘μ€ jsν”„λ‘œκ·Έλž¨
  • 프리셋(Preset): μ—¬λŸ¬κ°œμ˜ ν”ŒλŸ¬κ·ΈμΈμ„ λͺ¨μ•„놓은 것.

ν”ŒλŸ¬κ·ΈμΈμ™€ 프리셋은 κ³΅μ‹μœΌλ‘œ μ •ν•΄μ§„ 것을 μ‚¬μš©ν•  μˆ˜λ„ 있고 직접 μžμ‹ λ§Œμ˜ ν”ŒλŸ¬κ·ΈμΈμ„ μž‘μ„±ν•˜μ—¬ λ³€ν™˜μ„ μ½”λ“œμ— μ μš©ν•  μˆ˜λ„ μžˆλ‹€.

좜처

Leave a comment