@@ -69,9 +69,14 @@ class WebpackBaseConfig {
6969 * @return {Object }
7070 */
7171 get defaultSettings ( ) {
72+ const cssModulesQuery = {
73+ modules : true ,
74+ importLoaders : 1 ,
75+ localIdentName : '[name]-[local]-[hash:base64:5]'
76+ } ;
77+
7278 return {
7379 context : this . srcPathAbsolute ,
74- debug : false ,
7580 devtool : 'eval' ,
7681 devServer : {
7782 contentBase : './src/' ,
@@ -81,93 +86,110 @@ class WebpackBaseConfig {
8186 inline : true ,
8287 port : 8000
8388 } ,
84- entry : './client .js' ,
89+ entry : './index .js' ,
8590 module : {
86- preLoaders : [
91+ rules : [
8792 {
88- test : / \. ( j s | j s x ) $ / ,
93+ enforce : 'pre' ,
94+ test : / \. j s ? $ / ,
8995 include : this . srcPathAbsolute ,
90- loader : 'eslint'
91- }
92- ] ,
93- loaders : [
94- {
95- test : / \. c s s m o d u l e \. c s s $ / ,
96- loaders : [
97- 'style' ,
98- 'css?modules&importLoaders=1&localIdentName=[name]-[local]-[hash:base64:5]'
99- ]
96+ loader : 'babel-loader' ,
97+ query : {
98+ presets : [ 'es2015' ]
99+ }
100100 } ,
101101 {
102102 test : / ^ .( (? ! c s s m o d u l e ) .) * \. c s s $ / ,
103103 loaders : [
104- 'style' ,
105- 'css'
104+ { loader : 'style-loader' } ,
105+ { loader : 'css-loader' }
106106 ]
107107 } ,
108108 {
109- test : / \. c s s m o d u l e \. ( s a s s | s c s s ) $ / ,
110- loaders : [
111- 'style' ,
112- 'css?modules&importLoaders=1&localIdentName=[name]-[local]-[hash:base64:5]' ,
113- 'sass'
114- ]
109+ test : / \. ( p n g | j p g | g i f | m p 4 | o g g | s v g | w o f f | w o f f 2 ) $ / ,
110+ loader : 'file-loader'
115111 } ,
116112 {
117113 test : / ^ .( (? ! c s s m o d u l e ) .) * \. ( s a s s | s c s s ) $ / ,
118114 loaders : [
119- 'style' ,
120- 'css' ,
121- 'sass'
115+ { loader : 'style-loader' } ,
116+ { loader : 'css-loader' } ,
117+ { loader : 'sass-loader' }
122118 ]
123119 } ,
124120 {
125- test : / \. c s s m o d u l e \. l e s s $ / ,
121+ test : / ^ . ( (? ! c s s m o d u l e ) . ) * \. l e s s $ / ,
126122 loaders : [
127- 'style' ,
128- 'css?modules&importLoaders=1&localIdentName=[name]-[local]-[hash:base64:5]' ,
129- 'less'
123+ { loader : 'style-loader' } ,
124+ { loader : 'css-loader' } ,
125+ { loader : 'less-loader' }
130126 ]
131127 } ,
132128 {
133- test : / ^ .( (? ! c s s m o d u l e ) .) * \. l e s s $ / ,
129+ test : / ^ .( (? ! c s s m o d u l e ) .) * \. s t y l $ / ,
134130 loaders : [
135- 'style' ,
136- 'css' ,
137- 'less'
131+ { loader : 'style-loader' } ,
132+ { loader : 'css-loader' } ,
133+ { loader : 'stylus-loader' }
138134 ]
139135 } ,
140136 {
141- test : / \. c s s m o d u l e \. s t y l $ / ,
137+ test : / \. j s o n $ / ,
138+ loader : 'json-loader'
139+ } ,
140+ {
141+ test : / \. ( j s | j s x ) $ / ,
142+ include : [ ] . concat (
143+ this . includedPackages ,
144+ [ this . srcPathAbsolute ]
145+ ) ,
142146 loaders : [
143- 'style' ,
144- 'css?modules&importLoaders=1&localIdentName=[name]-[local]-[hash:base64:5]' ,
145- 'stylus'
147+ // Note: Moved this to .babelrc
148+ { loader : 'babel-loader' }
146149 ]
147150 } ,
148151 {
149- test : / ^ . ( (? ! c s s m o d u l e ) . ) * \. s t y l $ / ,
152+ test : / \. c s s m o d u l e \. ( s a s s | s c s s ) $ / ,
150153 loaders : [
151- 'style' ,
152- 'css' ,
153- 'stylus'
154+ { loader : 'style-loader' } ,
155+ {
156+ loader : 'css-loader' ,
157+ query : cssModulesQuery
158+ } ,
159+ { loader : 'sass-loader' }
154160 ]
155161 } ,
156162 {
157- test : / \. ( p n g | j p g | g i f | m p 4 | o g g | s v g | w o f f | w o f f 2 ) $ / ,
158- loaders : [ 'file' ]
163+ test : / \. c s s m o d u l e \. c s s $ / ,
164+ loaders : [
165+ { loader : 'style-loader' } ,
166+ {
167+ loader : 'css-loader' ,
168+ query : cssModulesQuery
169+ }
170+ ]
159171 } ,
160172 {
161- test : / \. j s o n $ / ,
162- loaders : 'json'
173+ test : / \. c s s m o d u l e \. l e s s $ / ,
174+ loaders : [
175+ { loader : 'style-loader' } ,
176+ {
177+ loader : 'css-loader' ,
178+ query : cssModulesQuery
179+ } ,
180+ { loader : 'less-loader' }
181+ ]
163182 } ,
164183 {
165- test : / \. ( j s | j s x ) $ / ,
166- include : [ ] . concat (
167- this . includedPackages ,
168- [ this . srcPathAbsolute ]
169- ) ,
170- loaders : [ 'react-hot' , 'babel' ]
184+ test : / \. c s s m o d u l e \. s t y l $ / ,
185+ loaders : [
186+ { loader : 'style-loader' } ,
187+ {
188+ loader : 'css-loader' ,
189+ query : cssModulesQuery
190+ } ,
191+ { loader : 'stylus-loader' }
192+ ]
171193 }
172194 ]
173195 } ,
@@ -187,7 +209,7 @@ class WebpackBaseConfig {
187209 stores : `${ this . srcPathAbsolute } /stores/` ,
188210 styles : `${ this . srcPathAbsolute } /styles/`
189211 } ,
190- extensions : [ '' , ' .js', '.jsx' ] ,
212+ extensions : [ '.js' , '.jsx' ] ,
191213 modules : [
192214 this . srcPathAbsolute ,
193215 'node_modules'
0 commit comments