aboutsummaryrefslogtreecommitdiff
path: root/webpack.config.js
blob: ce4f1daea43cdb4237ade6e53685eafd15595484 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
const path = require("path");
const HtmlWebpackPlugin = require("html-webpack-plugin");

module.exports = {
    entry: path.resolve(__dirname, "src/"),
    plugins: [
        new HtmlWebpackPlugin({
            template: path.join(__dirname, "src/", "index.html"),
            favicon: path.join(__dirname, "src/assets/", "favicon.ico")
        }),
    ],
    module: {
        rules: [
            {
                test: /\.?jsx$/,
                use: {
                    loader: "babel-loader",
                    options: {
                        presets: ["@babel/preset-env", "@babel/preset-react"]
                    }
                },
            },
            {
                test: /\.(jpg|png|svg|gif)$/,
                type: "asset/resource",
            },
            {
                test: /\.css$/i,
                use: [
                    "style-loader",
                    {
                        loader: "css-loader",
                        options: {
                            importLoaders: 1,
                            modules: true,
                        },
                    },
                ],
            },
            {
                test: /\.(woff(2)?|ttf|eot|svg)(\?v=\d+\.\d+\.\d+)?$/,
                generator: {
                    filename: "[name][ext]"
                }
            }
        ]
    },
    resolve: {
        modules: [path.resolve(__dirname, "src/"), "node_modules"],
        alias: {
            client: path.resolve(__dirname, "")
        },
        extensions: [".js", ".jsx"]
    },
    output: {
        path: path.resolve(__dirname, "dist"),
        assetModuleFilename: "[hash][ext][query]"
    },
};