BabelFrontend/webpack & babel2023. 10. 8. 17:29
Table of Contents
Babel ?
- Babel은 javascript 코드를 최신 문법으로 변환해주는 도구이다..!
- 오래된 브라우저 및 환경에서 최신 javascript 문법을 지원하지 않을 때 사용된다. 따라서 개발자들이 최신 문법을 사용해서 Babel을 사용해서 오래된 버전의 문법을 사용하는 코드로 배포할 수 있다..!
- Babel에는 주로 두가지 기능이 있다
Transpiling(문법 변환):
- Babel은 최신 자바스크립트 문법(ECMAScript 2015+ 또는 ES6+)을 오래된 문법으로 변환한다. 이를 통해 최신 문법을 사용하여 코드를 작성할 수 있다.
- React 코드를 작성할 때 최신 문법을 사용할 수 있게 한다!
- React의 JSX 코드를 Javascript로 변환!!
- JSX 코드를 React.createElement() 함수 호출로 변환하여 React가 이를 이해하고 렌더링할 수 있도록 한다.
// JSX
const element = () => {
return <h1>Hello, World!</h1>;
}
// Babel -> Transpiling to Javascript
const element = () => {
return React.createElement('h1', null, 'Hello, World!');
}
Polyfilling(환경 대응):
- Babel은 최신 javascript 기능을 구현하지 않은 환경에서도 코드가 작동하도록 Polyfill을 제공한다. 개발자가 최신 기능을 사용하면서 모든 사용자에게 호환성을 제공할 수 있도록 한다!
사용 예시?
- 프로젝트 최상위 디렉토리에 babel.config.js 파일을 생성하거나 .babelrc 파일을 생성한
- Babel 설정 파일을 생성하여 React와 ES6+ 문법을 변환하도록 설정!
.babel.config.js
module.exports = {
presets: ['@babel/preset-env', "@babel/preset-react"],
};
.babelrc
{
"presets": ["@babel/preset-env", "@babel/preset-react"]
}
- React와 Babel을 webpack과 함께 사용해서 프로젝트를 빌드할 때, Webpack 설정에 babel 로더를 추가한다!
module.exports = {
// ...
module: {
rules: [
{
test: /\.js$/,
exclude: /node_modules/,
use: {
loader: 'babel-loader',
// 위와 같이 babel.config.js 파일로 presets를 만들어두면 별도로 지정할 필요가 없음!!
options: {
// preset -> Babel 플러그인을 묶어놓은 설정 그룹
// 사용자가 별도로 특정 버전의 Javascript 문법을 지정할 필요 없음
presets: ['@babel/preset-env']
}
},
},
],
},
};
'Frontend > webpack & babel' 카테고리의 다른 글
webpack으로 React 프로젝트 빌드해보기 =) (0) | 2023.10.08 |
---|---|
Loader / Plugin (1) | 2023.10.08 |
Entry(index.js) / Output (0) | 2023.09.03 |
webpack (1) | 2023.08.21 |
webpack과 babel 리액트 프로젝트 생성 (0) | 2022.06.04 |
@덕구공 :: Duck9s'
주니어 개발자에욤
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!