"scripts": {
"dev" : "webpack"
},
npx webpack
npm i -D @babel/core @babel/preset-env @babel/preset-react babel-loader
core가 babel의 기본. preset-env는 사용자의 브라우저에 맞게 최신 문법을 예전 문법으로 바꿔줌. preset-react는 얘가 있어야 jsx 지원 가능. loader는 바벨과 웹팩을 연결해줌.
다 설치한 후에는 package.json 세팅.
= devDependencies로 바벨 설치값 이동.
"devDependencies": {
"@babel/core": "^7.13.15",
"@babel/plugin-proposal-class-properties": "^7.13.0",
"@babel/preset-env": "^7.13.15",
"@babel/preset-react": "^7.13.13",
"babel-loader": "^8.2.2",
"webpack": "^5.31.0",
"webpack-cli": "^4.6.0"
}
다 설치 및 세팅한 후에는 webpack.config.js 세팅
entry객체 밑에 module을 넣어준다.
entry로 파일을 읽고 module을 적용한 후 output으로 표시한다는 흐름으로 이해할 것.
module : {
rules: [{ //모듈에 적용할 룰
test : /\.jsx?/, // 테스트 대상. 정규표현식 표현방법으로 js와 jsx를 지칭함. 정규표현식에 대한 공부 별도 필요. 많이 쓰인다고함.
loader : 'babel-loader', //로더를 바벨로더로 적용하겠다. 로더는 최신 문법에 바벨을 적용해 옛날 문법으로 바꿔주겠다는 기능임.
options : { //바벨의 옵션.
presets : ['@babel/preset-env', @babel/preset-react'], //적용할 프리셋.
},
}],
},
이대로 실행하면 state 에러가 뜰거임. 그럼 에러 메시지대로 babel/plugin-proposal-class-properties를 추가해줘야 함. npm i -D @babel/plugin-proposal-class-properties
로 추가해준 후 presets 밑에 plugins 로
plugins : [@babel/plugin-proposal-class-properties],
를 추가해주면 정상적으로 작동함.