1. 프로젝트 시작
# 프로젝트 생성
$ mkdir webpack-template-basic
$ cd webpack-template-basic
$ npm init -y
$ npm i -D webpack webpack-cli webpack-dev-server@next
// package.json
"scripts": {
"dev": "webpack-dev-server --mode development",
"build": "webpack --mode production"
},
"devDependencies": {
"webpack": "^5.51.1", // Bundler가 동작하기 위한 핵심 패키지
"webpack-cli": "^4.8.0", // CLI를 지원하는 패키지
"webpack-dev-server": "^4.0.0-rc.1" // 페이지 자동 새로고침 패키지
}
<!-- index.html -->
<head>
<title>Hello Webpack!</title>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/reset-css@5.0.1/reset.min.css"> <!-- reset.css -->
</head>
<body>
<h1>Hello Webpack!!</h1>
</body>
// js/main.js
console.log('Webpack!')
2. Entry, Output
// webpack.config.js
// import
const path = require('path') // path 전역 모듈
// export
module.exports = {
entry: './js/main.js', // 파일을 읽어들이기 시작하는 진입점 설정
output: { // 결과물(Bundle)을 반환하는 설정
// path: path.resolve(__dirname, 'dist'),
// filename: 'main.js',
clean: true // 새롭게 build 했을 때, 기존에 필요하지 않은 파일을 제거
}
}
# terminal
$ npm run build
3. Plugins
# terminal
$ npm i -D html-webpack-plugin
// webpack.config.js
const path = require('path')
const HtmlPlugin = require('html-webpack-plugin')
module.exports = {
entry: './js/main.js',
output: {
clean: true
},
// 번들링 후 결과물의 처리 방식 등 다양한 플러그인들을 설정
plugins: [
new HtmlPlugin({
template: './index.html'
})
],
devServer: {
host: 'localhost'
}
}
댓글남기기