Skip to content

Commit 841d67f

Browse files
committed
JavaScript: About Babel and example
- Modify Readme.md
1 parent d80dde8 commit 841d67f

File tree

9 files changed

+3093
-4
lines changed

9 files changed

+3093
-4
lines changed

Diff for: .gitignore

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
**/node_modules/

Diff for: JavaScript/babel/.babelrc

+4
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
{
2+
// "plugins": ["@babel/plugin-transform-arrow-functions"],
3+
"presets": ["@babel/preset-env"]
4+
}

Diff for: JavaScript/babel/Readme.md

+49
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
# Babel?
2+
3+
아래 코드는 IE에서 실행이 되지 않는다.<br>
4+
"구문 오류" 라고 빨간 에러가 남는다.
5+
```js
6+
const hello = () => console.log("test for Babel");
7+
hello();
8+
```
9+
10+
ES6 이상의 버전을 거의 지원하지 않는 브라우저(IE 또는 구형 버전)에서도 쓸 수 있게 ES5 이하 버전으로 변환해야 한다.
11+
12+
바벨을 설치하고 변환해보자.
13+
```bash
14+
npm i -D @babel/core @babel/cli
15+
npx babel testForBabel.js --out-file output.js
16+
```
17+
output.js를 확인해보자. <br>
18+
아무런 변화가 없다. <br>
19+
원하는 것을 얻으려면 프리셋과 플러그인들을 설정해줘야 한다.<br>
20+
각 플러그인들은 각자가 또 npm 라이브러리이기 때문에 설치해주거나 preset으로 설정해줄 수 있다.
21+
22+
ES6의 화살표 함수를 transpile 해줄 수 있는 플러그인을 설치해보자.
23+
```bash
24+
npm i -D @babel/plugin-transform-arrow-functions
25+
```
26+
27+
그 다음 바벨이 이 플러그인을 쓸 수 있도록 알려줘야 한다.<br>
28+
그걸 .babelrc에 적어주는 것이다. 프로젝트 제일 root에 생성해주면 된다.<br>
29+
그 다음 babel을 돌려주면 ES5로 transpiling 된다.
30+
31+
그런데 이렇게 모든 ES6 기능을 설치하고 적어주기에는 너무 번거롭기 때문에 이미 모아둔 preset을 설정해주면 된다.
32+
33+
공식 preset은 이런 것들이 있다. <br>
34+
@babel/preset-env, @babel/preset-flow, @babel/preset-react, @babel/preset-typescript
35+
36+
아래 preset만 설치하면 ES6 모든 기능이 transpile 될 것이다.
37+
```bash
38+
npm i -D @babel/preset-env
39+
```
40+
```
41+
// .babelrc에 선언
42+
{
43+
"presets": ["@babel/preset-env"]
44+
}
45+
```
46+
47+
### 참고
48+
- https://blog.jakoblind.no/babel-preset-env/
49+
- https://poiemaweb.com/es6-babel-webpack-1

Diff for: JavaScript/babel/index.html

+6
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
<html>
2+
<body>
3+
<div>Index</div>
4+
</body>
5+
<script src="./testForBabel.js" ></script>
6+
</html>

Diff for: JavaScript/babel/output.js

+7
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
"use strict";
2+
3+
var hello = function hello() {
4+
return console.log("test for Babel");
5+
};
6+
7+
hello();

0 commit comments

Comments
 (0)