일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 프로그래머스 데브코스
- 쌓임맥락
- Vue
- git 같은계정 다른 컴퓨터
- 고양이 사진 검색기
- vue mixin
- intersection opserver
- Spacer
- 프로그래머스 데브코스 프론트엔드
- SCSS forward
- postcss
- SCSS extend
- 이벤트 수식어
- SCSS use
- 폼 입력 바인딩
- react next
- SCSS import
- 프로그래머스 K_Digital Training
- 리스트 렌더링
- KDT 프로그래머스 데브코스 프론트엔드
- netlify redirect
- 리액트
- 프로그래머스 프론트엔드 데브코스
- vue 이벤트 수신
- KDT 프로그래머스
- 다른컴퓨터에서 git사용
- vuex map
- flex
- nextjs사용법
- vue 지역 컴포넌트
- Today
- Total
혼자 적어보는 노트
Babel 설정 본문
Babel
바벨(bable)은 최신의 자바스크립트 문법을 구형의 브라우저에도 동작할 수 있도록
ES5문법들으로 변환시키는 트랜스파일러이다.
이렇게 코드를 변환해줌으로써 개발자들이 실행 환경에 구애받지 않고
항상 최신 문법의 자바스크립트로 코딩을 할 수 있다.
babel은 단독으로도 사용할 수 있지만 보통 webpack과 같은 빌드 시스템과 함께 사용된다.
* 바벨은 ES5버전 이전 문법으로 변환하는 용도이며,
브라우저에 지원하지 않는 기능을 만들어 주는 것은 아니기 때문에
브라우저에 지원하지 않는 기능을 사용하려면 별도의 폴리필을 적용해야한다.
바벨 설치
바벨의 코어 패키지와 바벨을 터미널에서 동작시킬 수 있게 도와주는 babel cli을 설치한다.
npm i -D @babel/core @babel/cli
babel.config.json
루트 경로에 bebel.config.json파일을 추가해주고
바벨에서 어떤식으로 변환을 할 지 plugin을 등록하여 지정을 할 수 있다.
문법의 변환의 규칙을을 하나하나 세부적으로 조정할 수도 있지만
preset을 사용하여 plugin의 그룹을 한번에 설치해서 적용할 수 있다.
babel preset-env 설치
npm i -D @babel/preset-env
babel.config.json 설정
{
"presets": ["@babel/preset-env"],
// "plugins": [
// "@babel/plugin-transform-block-scoping"
// ]
}
transform runtime 플러그인 추가
preset-env를 통해 코드를 변환하면 전역으로 등록이 되기 때문에
전역이 오염될 수 있기 때문에 transform runtime설치하여 전역을 오염시키지 않고
변환을 할 수 있다.
플러그인 설치
npm i -D @babel/plugin-transform-runtime @babel/runtime-corejs3
플러그인 적용
{
"presets": ["@babel/preset-env"],
"plugins": [
["@babel/plugin-transform-runtime", {
"corejs":3,
}]
]
}
corejs2버전은 includes 변환이 되지 않기 때문에 3버전으로 설정을 해준다.
browserslist 옵션 추가
package.json의 browerslist옵션을 추가하여 지원할 브라우저의 범위를 지정해 줄 수 있다.
프로젝트를 제공하려고 하는 대상의 브라우저를 적어준다.
"browserslist": [
"> 1%",
"last 2 versions",
"not dead",
"ie >= 11"
],
webpack 설정
webpack의 기본 설정이 되어있다는 가정 하에 babel loader를 설치해준다.
npm i babel-loader -D
loader 등록
package.json의 module의 rules에 loader를 등록해준다.
module: {
rules: [
{
test: /\.js$/,
exclude: /node_modules/,
use: 'babel-loader',
},
'기타' 카테고리의 다른 글
[VSCode] 새 파일, 새 폴더 단축키 설정 (0) | 2022.05.31 |
---|---|
Storybook 사용해 보기 (0) | 2022.05.27 |
ESlint vue/multi-word-component-names 옵션 끄기 (0) | 2022.05.13 |
Vue 프로젝트에 ESlint 적용 (0) | 2022.05.12 |
Webpack Vue SFC 환경 설정 (0) | 2022.05.11 |