@@ -12,6 +12,64 @@ const MiniCssExtractPlugin = require('mini-css-extract-plugin')
1212const HtmlWebpackPlugin = require ( 'html-webpack-plugin' )
1313const { VueLoaderPlugin } = require ( 'vue-loader' )
1414
15+ const isProd = process . env . NODE_ENV === 'production'
16+
17+ const styleLoaders = isProd ? [
18+ { { #if usesass} }
19+ {
20+ test : / \. s c s s $ / ,
21+ use : [ MiniCssExtractPlugin . loader , 'css-loader' , 'sass-loader' ] ,
22+ } ,
23+ {
24+ test : / \. s a s s $ / ,
25+ use : [ MiniCssExtractPlugin . loader , 'css-loader' , 'sass-loader?indentedSyntax' ] ,
26+ } ,
27+ { { / i f } }
28+ { { #if useless} }
29+ {
30+ test : / \. l e s s $ / ,
31+ use : [ MiniCssExtractPlugin . loader , 'css-loader' , 'less-loader' ] ,
32+ } ,
33+ { { / i f } }
34+ {
35+ test : / \. c s s $ / ,
36+ use : [ MiniCssExtractPlugin . loader , 'css-loader' ] ,
37+ }
38+ ] : [
39+ { { #if usesass} }
40+ {
41+ test : / \. s c s s $ / ,
42+ use : [ 'vue-style-loader' , 'css-loader' , 'sass-loader' ] ,
43+ } ,
44+ {
45+ test : / \. s a s s $ / ,
46+ use : [ 'vue-style-loader' , 'css-loader' , 'sass-loader?indentedSyntax' ] ,
47+ } ,
48+ { { / i f } }
49+ { { #if useless} }
50+ {
51+ test : / \. l e s s $ / ,
52+ use : [ 'vue-style-loader' , 'css-loader' , 'less-loader' ] ,
53+ } ,
54+ { { / i f } }
55+ {
56+ test : / \. c s s $ / ,
57+ use : [ 'vue-style-loader' , 'css-loader' ] ,
58+ }
59+ ] ;
60+
61+ { { #if eslint} } const createLintingRule = ( ) => ( {
62+ test : / \. ( j s | v u e ) $ / ,
63+ enforce : 'pre' ,
64+ exclude : / n o d e _ m o d u l e s / ,
65+ use : {
66+ loader : 'eslint-loader' ,
67+ options : {
68+ formatter : require ( 'eslint-friendly-formatter' )
69+ }
70+ }
71+ } ) { { / if } }
72+
1573/**
1674 * List of node_modules to include in webpack bundle
1775 *
@@ -31,37 +89,10 @@ let rendererConfig = {
3189 ] ,
3290 module : {
3391 rules : [
34- { { #if eslint} }
35- {
36- test : / \. ( j s | v u e ) $ / ,
37- enforce : 'pre' ,
38- exclude : / n o d e _ m o d u l e s / ,
39- use : {
40- loader : 'eslint-loader' ,
41- options : {
42- formatter : require ( 'eslint-friendly-formatter' )
43- }
44- }
45- } ,
46- { { / if } }
47- { { #if usesass } }
48- {
49- test : / \. s c s s $ / ,
50- use : [ 'vue-style-loader' , 'css-loader' , 'sass-loader' ]
51- } ,
52- {
53- test : / \. s a s s $ / ,
54- use : [ 'vue-style-loader' , 'css-loader' , 'sass-loader?indentedSyntax' ]
55- } ,
56- { { / i f } }
57- {
58- test : / \. l e s s $ / ,
59- use : [ 'vue-style-loader' , 'css-loader' , 'less-loader' ]
60- } ,
61- {
62- test : / \. c s s $ / ,
63- use : [ 'vue-style-loader' , 'css-loader' ]
64- } ,
92+ { { #if eslint} }
93+ ...( ! isProd ? [ createLintingRule ( ) ] : [ ] ) ,
94+ { { / if } }
95+ ...styleLoaders ,
6596 {
6697 test : / \. h t m l $ / ,
6798 use : 'vue-html-loader'
@@ -80,7 +111,7 @@ let rendererConfig = {
80111 use : {
81112 loader : 'vue-loader' ,
82113 options : {
83- extractCSS : process . env . NODE_ENV === 'production' ,
114+ extractCSS : isProd ,
84115 loaders : {
85116 sass : 'vue-style-loader!css-loader!sass-loader?indentedSyntax=1' ,
86117 scss : 'vue-style-loader!css-loader!sass-loader' ,
@@ -120,8 +151,8 @@ let rendererConfig = {
120151 ]
121152 } ,
122153 node : {
123- __dirname : process . env . NODE_ENV !== 'production' ,
124- __filename : process . env . NODE_ENV !== 'production'
154+ __dirname : ! isProd ,
155+ __filename : ! isProd
125156 } ,
126157 plugins : [
127158 new VueLoaderPlugin ( ) ,
@@ -134,7 +165,7 @@ let rendererConfig = {
134165 removeAttributeQuotes : true ,
135166 removeComments : true
136167 } ,
137- nodeModules : process . env . NODE_ENV !== 'production'
168+ nodeModules : ! isProd
138169 ? path . resolve ( __dirname , '../node_modules' )
139170 : false
140171 } ) ,
@@ -159,7 +190,7 @@ let rendererConfig = {
159190/**
160191 * Adjust rendererConfig for development settings
161192 */
162- if ( process . env . NODE_ENV !== 'production' ) {
193+ if ( ! isProd ) {
163194 rendererConfig . plugins . push (
164195 new webpack . DefinePlugin ( {
165196 '__static' : `"${ path . join ( __dirname , '../static' ) . replace ( / \\ / g, '\\\\' ) } "`
@@ -170,7 +201,7 @@ if (process.env.NODE_ENV !== 'production') {
170201/**
171202 * Adjust rendererConfig for production settings
172203 */
173- if ( process . env . NODE_ENV === 'production' ) {
204+ if ( isProd ) {
174205 rendererConfig . devtool = ''
175206
176207 rendererConfig . plugins . push (
0 commit comments