npm i -D @babel/core @babel/preset-env @babel/preset-react babel-loader clean-webpack-plugin css-loader html-loader html-webpack-plugin mini-css-extract-plugin css-loader file-loader style-loader webpack webpack-cli webpack-dev-server
const path = require('path');
module.exports = {
mode: 'development',
entry: './src/index.js',
outout: {
filename: 'bundle.js',
path: path.resolve(__dirname + '/build'),
},
};
"scripts": {
"build": "webpack"
}
module: {
rules: {
test: '가지고올 파일 정규식',
use: [
{
lodaer: '사용할 로더 이름',
options: {사용할 로더 옵션}
}
]
}
}
module: {
rules: [
{
test: /\.(js|jsx)$/,
exclude: '/node_modules/',
loader: 'babel-loader',
options: {
configFile: './babel.config.js',
},
},
{
test: /\.css$/,
use: [MiniCssExtractPlugin.loader, 'css-loader'],
},
{
test: /\.(png|gif|svg|jpe?g)$/,
loader: 'file-loader',
options: {
name: '[name].[ext]',
publicPath: '/',
},
},
],
},
plugins: [
new CleanWebpackPlugin(),
new HtmlWebpackPlugin({
template: './public/index.html'
}),
new MiniCssExtractPlugin({ filename: 'app.css' })
]
빠른 실시간 리로드 기능을 가진 개발 서버
동작 원리
속성
resolve: {
extensions: ['.js', '.jsx'],
},