Webpack
은 여러개의 파일을 하나로 합쳐주는 모듈 번들러이다.
⭐ Webpack 설치하기
npm i -D webpack webpack-cli webpack-dev-server
⭐ Webpack.config.js 설정하기
Webpack이 실행될때 필요한 설정파일로 프로젝트 루트에 작성한다.
//webpack.config.js
const path = require("path");
module.exports = {
// entry : js파일의 진입점을 나타낸다.
entry: "./src/js/index.js",
// output : build를 했을때 번들된 js파일,속성
output: {
filename: "bundle.js",
path: path.resolve(__dirname, "./dist"), //절대경로를 사용해야한다.
clean: true,
},
devtool: "source-map", //빌드한 파일과 원본파일을 서로 연결해준다.
mode : "development"
};
html
설정 모듈npm i -D html-webpack-plugin
css
설정 모듈npm i -D mini-css-extract-plugin css-loader css-minimizer-webpack-plugin
//webpack.config.js
module.exports = {
entry: "./src/js/index.js",
output: {
filename: "bundle.js",
path: path.resolve(__dirname, "./dist"),
clean: true,
},
devtool: "source-map",
mode: "development",
devServer: {
host: "localhost",
port: 8000,
open: true,
watchFiles: "index.html",
},
plugins: [
new HtmlWebpackPlugin({
title: "keyboard",
template: "./index.html",
inject: "body", // 번들을 했을때 js파일의 위치
favicon: "./favicon.ico",
}),
new MiniCssExtractPlugin({
filename: "style.css",
}),
],
module: {
rules: [
{
test: /\.css$/,
use: [MiniCssExtractPlugin.loader, "css-loader"],
},
],
},
optimization: {
minimizer: [new TerserPlugin(), new CssMinimizerPlugin()],
},
};