Babel

babel

  • μ΅œμ‹  μžλ°”ν¬μŠ€λ¦½νŠΈ 문법을 λΈŒλΌμš°μ €μ—μ„œ 이해할 수 μžˆλŠ” μˆ˜μ€€μœΌλ‘œ λ³€ν™˜ν•΄μ£ΌλŠ” 트랜슀파일러이자 컴파일러

  • μ„€μ •νŒŒμΌμ„ 톡해 μ–΄λ–€ 문법을 λ³€ν™˜ν•  것인지 μ •μ˜

  • Preset-envμ—μ„œ νƒ€κ²Ÿ λΈŒλΌμš°μ €λ₯Ό μ„ νƒν•˜λ©΄, μžλ™μœΌλ‘œ ν•„μš”ν•œ λ¬Έλ²•λ§Œ λ³€ν™˜ν•΄μ€Œ

  • μ—¬λŸ¬κ°€μ§€ presetκ³Ό plugin을 톡해 μžλ°”μŠ€ν¬λ¦½νŠΈμ˜ λŒ€ν‘œμ μΈ 트랜슀파일러둜 자리작음

  • λŒ€κ·œλͺ¨ ν”„λ‘œμ νŠΈ μ„±λŠ₯이슈둜 μƒˆλ‘œμš΄ 도ꡬ듀이 많이 생김

@babel/core @babel/cli

  • pnpm exec babel src --out-dir dist

  • λ‚΄κ°€ μž‘μ„±ν•œ μ½”λ“œ(src/ ν•˜μœ„ λͺ¨λ“  μ½”λ“œλ₯Ό λŒ€μƒ)λ₯Ό λΈŒλΌμš°μ €κ°€ 이해할 수 μžˆλŠ” μ½”λ“œλ‘œ μ»΄νŒŒμΌν•˜μ—¬ dist/ ν•˜μœ„λ‘œ λ‹€μ‹œ μž‘μ„±ν•œλ‹€

.babelrc.json (babel.config.json, babelrc.js, babel.config.js)

  • μ„€μ • νŒŒμΌμ„ λ°”νƒ•μœΌλ‘œ λ³€ν™˜ν•  λŒ€μƒμ„ μ„ μ •

    • μ •μ˜λœ λŒ€μƒμ΄ μ•„λ‹Œ 경우 λ³€ν™˜λ˜μ§€ μ•ŠμŒ

  • μ„€μ • νŒŒμΌμ—λŠ” pluginκ³Ό preset을 μ •μ˜

    • plugin: μ–΄λ–€ 문법을 μ–΄λ–»κ²Œ 바꿀지에 λŒ€ν•œ λ³€ν™˜μ‹

    • preset: ν”ŒλŸ¬κ·ΈμΈμ˜ 집합

  • μ„ μ •λœ λŒ€μƒμ΄ λ³€ν™˜μ‹μ— 따라 λ³€κ²½λœλ‹€.

@babel/preset-envλŠ” λΈŒλΌμš°μ € λͺ©λ‘(.browserlistrc)λ₯Ό μ‚¬μš©ν•΄μ„œ λ³€ν™˜ν•  λŒ€μƒμ„ 적절히 골라낸닀.

  • μ΅œμ‹  ES μŠ€νŽ™μ„ 가지며, μ„ΈλΆ€ 관리가 ν•„μš” μ—†κ³  μžλ™μœΌλ‘œ ν•„μš”ν•œ λ¬Έλ²•λ§Œ μ²˜λ¦¬ν•˜μ—¬ μ‚¬μ΄μ¦ˆλ₯Ό μ€„μž„

Last updated