47 lines
906 B
JavaScript
47 lines
906 B
JavaScript
|
const path = require("path");
|
||
|
const HtmlWebpackPlugin = require("html-webpack-plugin");
|
||
|
const MiniCssExtractPlugin = require("mini-css-extract-plugin");
|
||
|
|
||
|
const pages = ["index", "aes"];
|
||
|
|
||
|
module.exports = {
|
||
|
entry: pages.reduce((config, page) => {
|
||
|
config[page] = `./src/${page}.js`;
|
||
|
return config;
|
||
|
}, {}),
|
||
|
output: {
|
||
|
filename: "[name].js",
|
||
|
path: path.resolve(__dirname, "dist"),
|
||
|
clean: true,
|
||
|
},
|
||
|
optimization: {
|
||
|
splitChunks: {
|
||
|
chunks: "all",
|
||
|
},
|
||
|
},
|
||
|
plugins: [
|
||
|
new MiniCssExtractPlugin({
|
||
|
filename: "[contenthash].css",
|
||
|
chunkFilename: "[id].[contenthash].css",
|
||
|
}),
|
||
|
].concat(
|
||
|
pages.map(
|
||
|
(page) =>
|
||
|
new HtmlWebpackPlugin({
|
||
|
inject: true,
|
||
|
template: `./src/pages/${page}.html`,
|
||
|
filename: `${page}.html`,
|
||
|
chunks: [page],
|
||
|
})
|
||
|
)
|
||
|
),
|
||
|
module: {
|
||
|
rules: [
|
||
|
{
|
||
|
test: /\.css$/i,
|
||
|
use: [MiniCssExtractPlugin.loader, "css-loader"],
|
||
|
},
|
||
|
],
|
||
|
},
|
||
|
};
|