전에도 언급했듯 웹팩은 모듈 번들러입니다.
모듈?
특정 기능을 하는 코드 덩어리입니다. 웹을 구성하는 HTML, CSS, JS 등이 모듈입니다. 당연히 SCSS, JSX 등 도 모듈입니다. 그런데 코드를 작성할 때 이들을 모두 한 페이지에 작성하는 것이 아니라 생산성을 위해 폴더와 파일 단위로 구분하여 작성합니다. 이 덩어리들을 한 곳에 모아 주는 것을 '모듈 번들러'라고 합니다.
왜 굳이 번들링을 해야 하는가?
분리된 파일에서 변수, 함수명이 겹쳐서 overwite되는 경우
이미지 압축, JS 트랜스파일 등 loader를 통한 자동화
Lazy Loading을 통한 로딩 시간 단축. (웹팩에서 코드 스플리팅을 할 수 있습니다)
HTTP 요청 횟수를 줄이기 위함 (프론트에서 서버로 http 요청을 보내는 데에는 숫자 제한이 있습니다)
웹팩을 이용한 간단한 번들링
웹팩이 빌드된 후의 결과물이 dist 폴더 안에 생길 것입니다.
<html>
<head>
<title>Webpack Demo</title>
</head>
<body>
<script src="dist/main.js"></script>
</body>
</html>
이 JS가 웹팩으로 변환될 것입니다.
function component() {
const newDiv = document.createElement("div");
newDiv.innerHTML = "hello guysss";
return newDiv;
}
document.body.appendChild(component());
webpack.config.js입니다.
const path = require("path");
module.exports = {
mode: "none",
entry: "./src/index.js",
output: {
filename: "main.js",
path: path.join(__dirname, "dist"),
},
};
실행할 스크립트 명령어입니다.
"scripts": {
"build": "webpack"
},
npm run build를 돌려주시면 dist 폴더가 자동으로 생성되고 그 안에 번들링된 결과물이 있는 것을 확인해보실 수 있습니다.
이 게시물은 웹팩 핸드북, 공식 문서 등을 참고하여 작성되었습니다.
'🎁 Module bundler > 📖 Webpack' 카테고리의 다른 글
From neutrino v9 to Webpack v4 이전 (0) | 2021.11.21 |
---|---|
CRA 없이 TS react 환경 구성 (0) | 2020.09.28 |
CRA 없이 webpack으로 Custom React 프로젝트 구성하기 (0) | 2020.09.28 |
웹팩을 기초부터 하나씩 (2) : webpack.config.js (0) | 2020.07.14 |
[Webpack] express 환경에서의 웹팩 사용법 (scss, es6 js 변환) (1) | 2020.03.19 |