11const { CleanWebpackPlugin } = require ( 'clean-webpack-plugin' ) ;
22const { BundleAnalyzerPlugin } = require ( 'webpack-bundle-analyzer' ) ;
3- const MiniCssExtractPlugin = require ( 'mini-css-extract-plugin' ) ;
4- const HtmlWebpackPlugin = require ( 'html-webpack-plugin' ) ;
5- const paths = require ( './paths' ) ;
3+ const webpackBaseConfig = require ( './webpack.base.config' ) ;
64
75module . exports = {
86 mode : 'production' ,
9- entry : {
10- index : paths . entry
11- } ,
127 devtool : 'cheap-source-map' ,
13- output : {
14- path : paths . output ,
15- filename : '[name].bundle.js'
16- } ,
17- module : {
18- rules : [
19- {
20- test : / ( .j s | .j s x ) / ,
21- exclude : / ( n o d e _ m o d u l e s | b o w e r _ c o m p o n e n t s ) / ,
22- use : 'babel-loader' ,
23- } ,
24- {
25- test : / \. s [ a c ] s s $ / i,
26- use : [
27- 'style-loader' ,
28- 'css-loader' ,
29- 'sass-loader' ,
30- ] ,
31- } ,
32- {
33- test : / \. c s s $ / i,
34- use : [ 'style-loader' , 'css-loader' ] ,
35- } ,
36- {
37- test : / \. ( p n g | j p e ? g | g i f ) $ / i,
38- use : [
39- {
40- loader : 'file-loader' ,
41- } ,
42- ] ,
43- } ,
8+ ...webpackBaseConfig ( {
9+ plugins : [
10+ new CleanWebpackPlugin ( ) ,
11+ new BundleAnalyzerPlugin ( {
12+ analyzerMode : 'static' ,
13+ defaultSizes : 'gzip'
14+ } ) ,
4415 ]
45- } ,
46- plugins : [
47- new CleanWebpackPlugin ( ) ,
48- new HtmlWebpackPlugin ( {
49- template : paths . template ,
50- hash : true ,
51- title : 'Boilerplate' ,
52- } ) ,
53- new BundleAnalyzerPlugin ( {
54- analyzerMode : 'static' ,
55- defaultSizes : 'gzip'
56- } ) ,
57- new MiniCssExtractPlugin ( {
58- filename : '[name].[hash].css' ,
59- chunkFilename : '[id].[hash].css'
60- } )
61- ] ,
62- resolve : {
63- extensions : [ '.js' , 'jsx' , '.scss' , '.css' ]
64- } ,
65- }
16+ } ) ,
17+ } ;
0 commit comments