JavaScript
Babel과 Webpack을 이용한 개발 환경 구축
Hun-bot
2022. 7. 12. 21:28
728x90
반응형
Babel 설치후 Babel 프리셋 설치, babel.config.json 설정 파일 작성을 해줘야한다
@babel/preset-env -> Babel 프리셋
프리셋 설치 후
babel.config.json 설정파일을 생성하고 아래처럼 적어준다
{
"presets": ["@babel/preset-env"]
}
Browserslist
https://blog.shiren.dev/2020-12-01/
브라우저를 선택하는 옵션 기능만 따로 뽑아 놓은 도구
트랜스파일링
하나의 프로그래밍 언어를 다른 언어로 컴파일하는 특별한 형태
package.json안에 script에 이 명령어 추가
"bulid": "babel src/js -w -d dist/js"
-w : 타깃 폴더에 있는 모든 자바스크립트 파일들의 변경을 감지하여 자동으로 트랜스파일 ( --watch 옵션 축약)
-d: 트랜스파일링된 결과물이 저장될 폴더를 지정한다. 만약 지정된 폴더가 존재하지 않으면 자동 생성(--out-dir)
나머지 부분은 따라치면서 공부
Webpack
의존 관계에 있는 JS,CSS,이미지 등의 리소스들을 하나(또는 여러 개)의 파일로 번들링하는 모듈 번들러다
webpack.config.js 파일 설정
const path=require('path')
module.exports={
//entry file
// https://webpack.js.org/configuration/entry-context/$entry
entry:'./src/js/main.js',
//번들링 된 js 파일의 이름과 저장될 경로 지정
output:{
path:path.resolve(__dirname,'dist'),
filename:'js/bundle.js'
},
module:{
rules:[
{
test:/\.js$/,
include:[
path.resolve(__dirname,'src/js')
],
exclude:/node_modules/,
use:{
loader:'babel-loader',
options:{
presets:['@babel/preset-env'],
plugins:['@babel/plugin-proposal-class-properties']
}
}
}
]
},
devtool:'source-map',
mode:'development'
}
babel-polyfill: ES5 사양으로 대체할 수 없는 기능은 트랜스파일링이 되지않기에 @babel/polyfill을 사용해야함
나머지 부분은 따라하고 끝
728x90
반응형