1+ const path = require ( "path" ) ;
2+ const HtmlWebpackPlugin = require ( "html-webpack-plugin" ) ;
3+
4+ const config = {
5+ entry : [ "./src/index" ] ,
6+ output : {
7+ path : path . resolve ( "./dist" ) ,
8+ filename : "[name].js" ,
9+ sourceMapFilename : "[file].map" ,
10+ publicPath : "/dist/"
11+ } ,
12+ devtool : "source-map" ,
13+ resolve : {
14+ extensions : [ '.ts' , '.tsx' , '.js' , '.jsx' ]
15+ } ,
16+ module : {
17+ rules : [
18+ {
19+ enforce : 'pre' ,
20+ test : / \. j s x ? $ / ,
21+ use : [ 'source-map-loader' ]
22+ } , {
23+ enforce : 'pre' ,
24+ test : / \. t s x ? $ / ,
25+ use : [ 'source-map-loader' ]
26+ } , {
27+ test : / \. s ? c s s $ / ,
28+ use : [
29+ {
30+ loader : "style-loader"
31+ } , {
32+ loader : "css-loader"
33+ } , {
34+ loader : "postcss-loader" ,
35+ options : {
36+ plugins : function ( ) {
37+ return [
38+ require ( 'postcss-smart-import' ) ( { /* ...options */ } ) ,
39+ require ( 'autoprefixer' ) ( { /* ...options */ } ) ,
40+ require ( 'precss' ) ( { /* ...options */ } ) ,
41+ require ( 'doiuse' ) ( { browsers : [ 'ie >= 9' , '> 1%' ] , } ) ,
42+ require ( 'colorguard' ) ( { /* ...options */ } ) ,
43+ require ( 'postcss-unique-selectors' ) ( { /* ...options */ } ) ,
44+ require ( "postcss-reporter" ) ( { clearMessages : true } )
45+ ] ;
46+ }
47+ }
48+ } , {
49+ loader : "sass-loader"
50+ }
51+ ]
52+ }
53+ ]
54+ } ,
55+ plugins : [
56+ new HtmlWebpackPlugin ( {
57+ filename : "index.html" ,
58+ template : "./src/index.html" ,
59+ minify : {
60+ removeComments : true
61+ }
62+ } )
63+ ]
64+ } ;
65+
66+ module . exports = config ;
0 commit comments