1
1
const path = require ( 'path' )
2
- const { CleanWebpackPlugin } = require ( 'clean-webpack-plugin' ) ;
3
2
const MiniCssExtractPlugin = require ( 'mini-css-extract-plugin' ) ;
4
3
const CssMinimizerPlugin = require ( 'css-minimizer-webpack-plugin' ) ;
5
4
const WebpackBar = require ( 'webpackbar' ) ;
6
5
7
6
module . exports = ( _env , options ) => {
8
7
const isProduction = options . mode !== 'development' ;
9
8
10
- return {
11
- entry : './src/js/app.js' ,
9
+ let config = {
10
+ entry : [ './src/js/app.js' , './src/scss/app.scss' ] ,
12
11
output : {
13
12
path : path . resolve ( __dirname , 'dist' ) ,
14
- filename : 'js/app.js'
15
- } ,
13
+ filename : 'js/app.js' ,
14
+ pathinfo : isProduction ,
15
+ clean : true ,
16
+ } ,
16
17
17
18
module : {
18
19
rules : [
19
20
{
20
21
test : / \. j s $ / ,
21
- exclude : / n o d e _ m o d u l e s / ,
22
+ include : path . resolve ( __dirname , 'src' ) ,
22
23
use : {
23
- loader : 'babel-loader' ,
24
- options : {
25
- presets : [ '@babel/preset-env' ]
26
- }
24
+ loader : 'swc-loader' ,
27
25
}
28
26
} ,
29
27
30
28
{
31
29
test : / \. ( s a | s c | c ) s s $ / ,
30
+ include : path . resolve ( __dirname , 'src' ) ,
32
31
use : [
33
32
isProduction ?
34
33
{
@@ -56,7 +55,6 @@ module.exports = (_env, options) => {
56
55
57
56
plugins : [
58
57
new WebpackBar ( ) ,
59
- new CleanWebpackPlugin ( ) ,
60
58
new MiniCssExtractPlugin ( {
61
59
filename : 'css/app.css'
62
60
} )
@@ -67,8 +65,12 @@ module.exports = (_env, options) => {
67
65
`...` ,
68
66
new CssMinimizerPlugin ( ) ,
69
67
] ,
70
- } ,
68
+ }
69
+ }
71
70
72
- devtool : 'source-map'
71
+ if ( ! isProduction ) {
72
+ config [ 'devtool' ] = 'source-map'
73
73
}
74
+
75
+ return config ;
74
76
}
0 commit comments