blob: 6f02eac9d5b8e6a6be4510d9559585994f714493 [file] [log] [blame]
Adrien Béraudc4dd44a2021-04-08 01:05:24 -04001const path = require('path')
2const HtmlWebpackPlugin = require('html-webpack-plugin')
Adrien Bérauda2bf6fd2021-04-08 01:06:37 -04003const webpack = require('webpack')
Adrien Béraudc4dd44a2021-04-08 01:05:24 -04004
5module.exports = {
Adrien Bérauda2bf6fd2021-04-08 01:06:37 -04006 entry: ['react-hot-loader/patch',
7 'webpack-hot-middleware/client',
8 path.resolve(__dirname, 'src', 'index.js')],
Adrien Béraudc4dd44a2021-04-08 01:05:24 -04009 output: {
10 path: path.resolve(__dirname, 'dist'),
11 filename: 'bundle.js',
12 publicPath: '/'
13 },
Adrien Bérauda2bf6fd2021-04-08 01:06:37 -040014 devtool: 'inline-source-map',
Adrien Béraudc4dd44a2021-04-08 01:05:24 -040015 mode: 'development',
16 module: {
17 rules: [
18 {
19 test: /\.jsx?/,
20 exclude: /node_modules/,
21 use: {
22 loader: 'babel-loader',
23 options: {
24 presets: ['@babel/preset-env', '@babel/preset-react']
25 }
26 }
27 },
28 {
Adrien Béraudfe56ba32021-04-08 00:32:11 -040029 test: /\.s[ac]ss$/i,
30 use: ['style-loader', 'css-loader', 'sass-loader'],
Adrien Béraudc4dd44a2021-04-08 01:05:24 -040031 }
32 ]
33 },
34 plugins: [
Adrien Bérauda2bf6fd2021-04-08 01:06:37 -040035 new webpack.HotModuleReplacementPlugin(),
Adrien Béraudc4dd44a2021-04-08 01:05:24 -040036 new HtmlWebpackPlugin({
37 template: path.resolve(__dirname, 'src', 'index.ejs')
38 })
39 ]
40}