1- const merge = require ( 'webpack-merge' ) ;
1+ const { merge } = require ( 'webpack-merge' ) ;
22const Dotenv = require ( 'dotenv-webpack' ) ;
3+ const ReactRefreshWebpackPlugin = require ( '@pmmmwh/react-refresh-webpack-plugin' ) ;
34const base = require ( './base' ) ;
4- const helpers = require ( './helpers' ) ;
55
6- const hotReloadingEntries = [ 'react-hot-loader/patch' ] ;
7-
8- module . exports = merge . strategy ( {
9- entry : 'prepend' ,
10- } ) ( base , {
6+ module . exports = merge ( base , {
117 mode : 'development' ,
12- devtool : 'inline-source-map' ,
13- resolve : {
14- alias : {
15- 'react-dom' : '@hot-loader/react-dom' ,
16- } ,
17- } ,
18- entry : {
19- app : hotReloadingEntries ,
20- } ,
8+ devtool : 'eval-source-map' ,
219 output : {
22- path : helpers . resolveFromRootPath ( 'dist' ) ,
2310 filename : '[name].js' ,
2411 } ,
2512 devServer : {
26- inline : true ,
2713 host : 'localhost' ,
2814 port : 8080 ,
29- stats : 'minimal' ,
3015 hot : true ,
16+ historyApiFallback : true ,
17+ proxy : {
18+ '/api' : 'http://localhost:3001' ,
19+ } ,
20+ devMiddleware : {
21+ stats : 'errors-warnings' ,
22+ } ,
3123 } ,
32- plugins : [
33- new Dotenv ( {
34- path : 'dev.env' ,
35- } ) ,
36- ] ,
3724 module : {
3825 rules : [
3926 {
40- test : / \. ( p n g | j p g | g i f | s v g ) $ / ,
41- loader : 'file-loader' ,
42- options : {
43- name : 'img/[name].[ext]' ,
27+ test : / \. t s x ? $ / ,
28+ exclude : / n o d e _ m o d u l e s / ,
29+ use : {
30+ loader : 'babel-loader' ,
31+ options : {
32+ plugins : [ require . resolve ( 'react-refresh/babel' ) ] ,
33+ } ,
4434 } ,
4535 } ,
4636 {
@@ -49,4 +39,10 @@ module.exports = merge.strategy({
4939 } ,
5040 ] ,
5141 } ,
42+ plugins : [
43+ new ReactRefreshWebpackPlugin ( ) ,
44+ new Dotenv ( {
45+ path : 'dev.env' ,
46+ } ) ,
47+ ] ,
5248} ) ;
0 commit comments