| const path = require('path') |
| const HtmlWebpackPlugin = require('html-webpack-plugin') |
| const webpack = require('webpack') |
| |
| module.exports = { |
| entry: ['react-hot-loader/patch', |
| 'webpack-hot-middleware/client', |
| path.resolve(__dirname, 'src', 'index.js')], |
| output: { |
| path: path.resolve(__dirname, 'dist'), |
| filename: 'bundle.js', |
| publicPath: '/' |
| }, |
| devtool: 'inline-source-map', |
| mode: 'development', |
| module: { |
| rules: [ |
| { |
| test: /\.jsx?/, |
| exclude: /node_modules/, |
| use: { |
| loader: 'babel-loader', |
| options: { |
| presets: [['@babel/preset-env', { |
| useBuiltIns: 'entry', |
| corejs:{ version: "3.10", proposals: true }, |
| targets: { esmodules: true } |
| }], '@babel/preset-react'] |
| } |
| } |
| }, |
| { |
| test: /\.s[ac]ss$/i, |
| use: ['style-loader', 'css-loader', 'sass-loader'], |
| } |
| ] |
| }, |
| plugins: [ |
| new webpack.HotModuleReplacementPlugin(), |
| new HtmlWebpackPlugin({ |
| template: path.resolve(__dirname, 'src', 'index.ejs') |
| }) |
| ] |
| } |