blob: 841c7d5860b466644624a0f48a506698a347a6a1 [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: {
Adrien Béraudf51408f2021-04-13 03:26:26 -040024 presets: [['@babel/preset-env', {
25 useBuiltIns: 'entry',
26 corejs:{ version: "3.10", proposals: true },
27 targets: { esmodules: true }
28 }], '@babel/preset-react']
Adrien Béraudc4dd44a2021-04-08 01:05:24 -040029 }
30 }
31 },
32 {
Adrien Béraudfe56ba32021-04-08 00:32:11 -040033 test: /\.s[ac]ss$/i,
34 use: ['style-loader', 'css-loader', 'sass-loader'],
Adrien Béraudc4dd44a2021-04-08 01:05:24 -040035 }
36 ]
37 },
38 plugins: [
Adrien Bérauda2bf6fd2021-04-08 01:06:37 -040039 new webpack.HotModuleReplacementPlugin(),
Adrien Béraudc4dd44a2021-04-08 01:05:24 -040040 new HtmlWebpackPlugin({
41 template: path.resolve(__dirname, 'src', 'index.ejs')
42 })
43 ]
44}