@@ -2,123 +2,125 @@ const MiniCssExtractPlugin = require('mini-css-extract-plugin')
22const ImageMinimizerPlugin = require ( 'image-minimizer-webpack-plugin' )
33const path = require ( 'path' )
44
5- module . exports = ( { config, isDevelopment } ) => ( webpackConfig ) => ( {
6- ...webpackConfig ,
7- module : {
8- rules : [
9- isDevelopment
10- ? {
11- test : / \. ( s [ a c ] s s | c s s ) $ / ,
12- use : [
13- 'style-loader' ,
14- 'css-loader' ,
15- 'postcss-loader' ,
16- {
17- loader : 'sass-loader' ,
18- options : {
19- sassOptions : {
20- indentWidth : 4 ,
21- includePaths : [ ]
5+ module . exports =
6+ ( { config, isDevelopment } ) =>
7+ ( webpackConfig ) => ( {
8+ ...webpackConfig ,
9+ module : {
10+ rules : [
11+ isDevelopment
12+ ? {
13+ test : / \. ( s [ a c ] s s | c s s ) $ / ,
14+ use : [
15+ 'style-loader' ,
16+ 'css-loader' ,
17+ 'postcss-loader' ,
18+ {
19+ loader : 'sass-loader' ,
20+ options : {
21+ sassOptions : {
22+ indentWidth : 4 ,
23+ includePaths : [ ]
24+ }
2225 }
2326 }
24- }
25- ]
26- }
27- : {
28- test : / \. ( s [ a c ] s s | c s s ) $ / ,
29- use : [
30- MiniCssExtractPlugin . loader ,
31- 'css -loader',
32- 'postcss-loader' ,
33- {
34- loader : 'sass-loader' ,
35- options : {
36- sassOptions : {
37- indentWidth : 4 ,
38- includePaths : [ ]
27+ ]
28+ }
29+ : {
30+ test : / \. ( s [ a c ] s s | c s s ) $ / ,
31+ use : [
32+ MiniCssExtractPlugin . loader ,
33+ 'css- loader' ,
34+ 'postcss -loader',
35+ {
36+ loader : 'sass-loader' ,
37+ options : {
38+ sassOptions : {
39+ indentWidth : 4 ,
40+ includePaths : [ ]
41+ }
3942 }
4043 }
41- }
42- ]
43- } ,
44- {
45- test : / \. v u e $ / ,
46- loader : 'vue-loader'
47- } ,
48- {
49- test : / \. j s $ / ,
50- exclude : / n o d e _ m o d u l e s / ,
51- // use: ['babel-loader', 'eslint-loader']
44+ ]
45+ } ,
46+ {
47+ test : / \. v u e $ / ,
48+ loader : 'vue-loader'
49+ } ,
50+ {
51+ test : / \. j s $ / ,
52+ exclude : / n o d e _ m o d u l e s / ,
53+ // use: ['babel-loader', 'eslint-loader']
5254
53- use : [
54- {
55- loader : 'babel-loader' ,
55+ use : [
56+ {
57+ loader : 'babel-loader?cacheDirectory' ,
58+ options : {
59+ presets : [ '@babel/preset-env' ]
60+ }
61+ }
62+ ]
63+ } ,
64+ {
65+ test : / \. t s $ / ,
66+ exclude : / n o d e _ m o d u l e s / ,
67+ use : [
68+ {
69+ loader : 'babel-loader?cacheDirectory' ,
70+ options : { babelrc : true }
71+ } ,
72+ {
73+ loader : 'ts-loader' ,
74+ options : { appendTsSuffixTo : [ / \. v u e $ / ] }
75+ }
76+ ]
77+ } ,
78+ {
79+ test : / \. ( w o f f 2 ? | e o t | t t f | o t f ) ( \? .* ) ? $ / ,
80+ use : {
81+ loader : 'file-loader' ,
5682 options : {
57- presets : [ '@babel/preset-env' ]
83+ limit : 10000 ,
84+ name : path . posix . join ( isDevelopment ? '' : config . dist . versionPath , 'fonts/[name].[ext]' )
5885 }
5986 }
60- ]
61- } ,
62- {
63- test : / \. t s $ / ,
64- exclude : / n o d e _ m o d u l e s / ,
65- use : [
66- {
67- loader : 'babel-loader' ,
68- options : { babelrc : true }
69- } ,
70- {
71- loader : 'ts-loader' ,
72- options : { appendTsSuffixTo : [ / \. v u e $ / ] }
73- }
74- ]
75- } ,
76- {
77- test : / \. ( w o f f 2 ? | e o t | t t f | o t f ) ( \? .* ) ? $ / ,
78- use : {
79- loader : 'file-loader' ,
80- options : {
81- limit : 10000 ,
82- name : path . posix . join ( isDevelopment ? '' : config . dist . versionPath , 'fonts/[name].[ext]' )
83- }
84- }
85- } ,
86- {
87- test : / \. (?: i c o | g i f | p n g | j p g | j p e g | s v g ) $ / i,
88- type : 'asset/resource'
89- } ,
90- {
91- test : / \. ( i c o | g i f | p n g | j p g | j p e g | s v g ) $ / i,
92- use : [
93- {
94- loader : ImageMinimizerPlugin . loader ,
95- options : {
96- severityError : 'warning' , // Ignore errors on corrupted images
97- minimizerOptions : {
98- plugins : [ 'gifsicle' ]
87+ } ,
88+ {
89+ test : / \. (?: i c o | g i f | p n g | j p g | j p e g | s v g ) $ / i,
90+ type : 'asset/resource'
91+ } ,
92+ {
93+ test : / \. ( i c o | g i f | p n g | j p g | j p e g | s v g ) $ / i,
94+ use : [
95+ {
96+ loader : ImageMinimizerPlugin . loader ,
97+ options : {
98+ severityError : 'warning' , // Ignore errors on corrupted images
99+ minimizerOptions : {
100+ plugins : [ 'gifsicle' ]
101+ }
99102 }
100103 }
101- }
102- ]
103- } ,
104- {
105- test : / \. s v g $ / ,
106- use : [
107- {
108- loader : 'file-loader'
109- } ,
110- {
111- loader : 'svgo-loader' ,
112- options : {
113- multipass : true ,
114- js2svg : {
115- indent : 2 ,
116- pretty : true
104+ ]
105+ } ,
106+ {
107+ test : / \. s v g $ / ,
108+ use : [
109+ {
110+ loader : 'file-loader'
111+ } ,
112+ {
113+ loader : 'svgo-loader' ,
114+ options : {
115+ multipass : true ,
116+ js2svg : {
117+ indent : 2 ,
118+ pretty : true
119+ }
117120 }
118121 }
119- }
120- ]
121- }
122- ]
123- }
124- } )
122+ ]
123+ }
124+ ]
125+ }
126+ } )
0 commit comments