※패스트 캠퍼스 강의 프론트엔드 개발 올인원 패키지를 참고하여 적은 것입니다.
웹팩이란 도구는 모듈(모듈을 모른다면?) 번들러입니다.
여기서 번들이란 말은 또 무엇일까요?
서로 참조 관계가 있는 모듈들 의존성을 지키면서 모은다음 하나의 파일로 묶는 과정을 말합니다.
그러면 이 번들이라는 과정을 왜 거칠까요?
이런 이유 때문에 번들이 중요하게 쓰입니다.
const path = require("path");
module.exports = {
entry: "./src/index.js",
output: {
path: path.resolve(__dirname, "dist"),
filename: "bundle.js",
},
target: "node",
};
※path : 아웃풋이 생기는 위치, filename : 아웃풋의 이름, target : 컴파일 하는 환경
module.exports {
...
module: {
rules: [
{
test: /\.css$/i, // 어떤 파일이 로더의 대상이 되는지를 지정(정규표현식 씀)
use: [
"style-loader",
{
loader: "css-loader", //css 처리하는 로더
},
],
},
],
},
}
const HtmlWebpackPlugin = require("html-webpack-plugin");
module.exports {
...
plugins: [
new HtmlWebpackPlugin({ // 기본 html 파일 생성해주는 플러그인
template: "./template.html", //기본으로 생성될 html파일 설정
}),
],
}
내용을 계속 추가하면서 번들링을 하다보면 번들 파일 용량이 커져서 번들파일이 도착하는 시간이 지연됩니다. 이때 번들파일을 몇가지 기준으로 분리 시키는데 이 형태를 Chunk라고 합니다. 분리하는 기준은 여러가지가 있는데, 대표적으로 런타임 청크파일, 벤더 청크파일이 있습니다.
런타임 환경에서 동작하는 코드들만 분리하여 넣어놓은 파일
외부 패키지 코드들만 분리하여 넣어놓은 파일
코드의 형태를 없애거나 치환시키는 형태로 최적화 시키는 과정을 말한다. 대상은 어플리케이션이 동작하는데 관여되지 않는 요소들이 해당됩니다. 예를들어 주석이나, 콘솔로그, 변수 등 이에 해당됩니다.
웹팩에 대해 배워 봤는데, 잘 사용하면 성능을 크게 향상 시킬 수 있을 것 같아 보였습니다.다음은 웹팩을 한번 실제로 적용해 보겠습니다..!