[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): ์ฌ๋ฌ๊ฐ์ ํ๋ฌ๊ทธ์ธ์ ๋ชจ์๋์ ๊ฒ.
ํ๋ฌ๊ทธ์ธ์ ํ๋ฆฌ์ ์ ๊ณต์์ผ๋ก ์ ํด์ง ๊ฒ์ ์ฌ์ฉํ ์๋ ์๊ณ ์ง์ ์์ ๋ง์ ํ๋ฌ๊ทธ์ธ์ ์์ฑํ์ฌ ๋ณํ์ ์ฝ๋์ ์ ์ฉํ ์๋ ์๋ค.
๐ฌ ์ต์ ๋๊ธ