Babel
(Python의 i18n 라이브러리는 Python-babel 참조)
Babel은 아시다시피 ES6/ES7 코드를 ECMAScript5 코드로 transpiling 하기 위한 도구입니다. Babel은 다양한 작은 모듈들로 구성되어 있습니다. Babel 다양한 모듈을 담는 일종의 상자 역할을 하며 코드를 컴파일 하기 위해 작은 모듈들(ex. presets)을 사용합니다.
Categories
- babel.config.json
- Babel:Config
- @babel/core
- @babel/polyfill (Babel:Polyfill) - Polyfill은 프로그램이 처음에 시작될 때 현재 브라우저에서 지원하지 않는 함수를 검사해서 각 object의 prototype에 붙여주는 역할을 한다.
- Babel 7.4.0부터 @babel/polyfill은 deprecated 되었다.
Installation
webpack
Via config
{
module: {
rules: [
{
test: /\.m?js$/,
exclude: /node_modules/,
use: {
loader: "babel-loader",
options: {
presets: ['@babel/preset-env']
}
}
}
]
}
}
For more information see the
babel/babel-loader
repo.
Create babel.config.json configuration file
Babel을 구성했지만 실제로 아무것도 하지 않았습니다. 프로젝트 루트에
babel.config.json
구성을 만들고 일부 사전 설정을 활성화합니다.
시작하려면 ES2015+에 대한 변환을 활성화하는 env 사전 설정을 사용할 수 있습니다.
In order to enable the preset you have to define it in your babel.config.json file, like this:
Simple example
babel 추가:
.babelrc
편집:
package.json에 바벨 빌드 명령 추가:
{
"name": "es6-project",
"version": "1.0.0",
"scripts": {
"build": "babel src/js -w -d dist/js"
},
"devDependencies": {
"@babel/cli": "^7.7.0",
"@babel/core": "^7.7.2",
"@babel/preset-env": "^7.7.1"
}
}
바벨 빌드 옵션 참고:
-
-w
- 타깃 폴더에 있는 모든 파일들의 변경을 감지하여 자동으로 트랜스파일한다. (
--watch
옵션의 축약형) -
-d
- 트랜스파일링된 결과물이 저장될 폴더를 지정한다. (
--out-dir
옵션의 축약형)
Compatibility table
See also
Favorite site
- Babel web site
- Babel REPL
- [추천] Babel 이해하기 | by landvibe | Medium
- ECMAScript 6를 위한 Babel 기본 사용법
- 2015 年の JavaScript と babel の話(るびま)
Guide
- [추천] Webpack과 Babel로 최신 JavaScript 웹프론트 개발환경 만들기 1 (Webpack, JavaScript, Babel)
- (Tool) (번역) Babel에 대한 모든 것
- Babel로 ES6 코드 사용하기
References
-
Create_the_latest_JavaScript_web_frontend_development_environment_with_Webpack_and_Babel.pdf ↩