@@ -9,6 +9,7 @@ const ExtractTextPlugin = require('extract-text-webpack-plugin');
99const ShellPlugin = require ( 'webpack-shell-plugin' ) ;
1010const PurgeCssPlugin = require ( 'purgecss-webpack-plugin' ) ;
1111const UglifyJsPlugin = require ( 'uglifyjs-webpack-plugin' ) ;
12+
1213// Custom PurgeCSS extractor for Tailwind that allows special characters in
1314// class names.
1415//
@@ -52,7 +53,7 @@ const productionPlugins = [
5253 {
5354 extractor : TailwindExtractor ,
5455 extensions : [ 'html' , 'js' , 'php' , 'vue' ] ,
55- }
56+ } ,
5657 ] ,
5758 } ) ,
5859 new UglifyJsPlugin ( {
@@ -86,6 +87,14 @@ module.exports = {
8687 test : / \. v u e $ / ,
8788 loader : 'vue-loader' ,
8889 } ,
90+ {
91+ test : / \. t s x ? $ / ,
92+ loader : 'ts-loader' ,
93+ exclude : / n o d e _ m o d u l e s / ,
94+ options : {
95+ appendTsSuffixTo : [ / \. v u e $ / ] ,
96+ } ,
97+ } ,
8998 {
9099 test : / \. j s $ / ,
91100 include : [
@@ -114,36 +123,43 @@ module.exports = {
114123 plugins : [
115124 require ( 'postcss-import' ) ,
116125 tailwind ( './tailwind.js' ) ,
117- require ( 'postcss-preset-env' ) ( { stage : 0 } ) ,
126+ require ( 'postcss-preset-env' ) ( { stage : 0 } ) ,
118127 require ( 'precss' ) ,
119128 require ( 'autoprefixer' ) ,
120129 require ( 'cssnano' ) ,
121- ]
130+ ] ,
122131 } ,
123132 } ] ,
124133 } ) ,
125- }
126- ]
134+ } ,
135+ {
136+ test : / \. ( p n g | j p g | g i f | s v g ) $ / ,
137+ loader : 'file-loader' ,
138+ options : {
139+ name : '[name].[ext]?[hash]' ,
140+ } ,
141+ } ,
142+ ] ,
127143 } ,
128144 resolve : {
145+ extensions : [ '.ts' , '.js' , '.vue' , '.json' ] ,
129146 alias : {
130- 'vue$' : 'vue/dist/vue.esm.js'
147+ 'vue$' : 'vue/dist/vue.esm.js' ,
131148 } ,
132- extensions : [ '.js' , '.vue' , '.json' ] ,
133149 symlinks : false ,
134150 } ,
135151 plugins : process . env . NODE_ENV === 'production' ? basePlugins . concat ( productionPlugins ) : basePlugins ,
136152 serve : {
137- content : " ./public/" ,
153+ content : ' ./public/' ,
138154 dev : {
139- publicPath : " /assets/" ,
155+ publicPath : ' /assets/' ,
140156 headers : {
141- " Access-Control-Allow-Origin" : "*" ,
157+ ' Access-Control-Allow-Origin' : '*' ,
142158 } ,
143159 } ,
144160 hot : {
145161 hmr : true ,
146162 reload : true ,
147- }
148- }
163+ } ,
164+ } ,
149165} ;
0 commit comments