@@ -10,6 +10,7 @@ const shouldUseSourceMap = process.env.GENERATE_SOURCEMAP !== 'false';
1010
1111function getStyleLoader ( options ) {
1212 const isSass = options && options . sass ;
13+ const isLess = options && options . less ;
1314 const isModules = options && options . modules ;
1415
1516 let styleRegex = / \. c s s $ / ;
@@ -19,6 +20,11 @@ function getStyleLoader(options) {
1920 styleModuleRegex = / \. ( m o d u l e | m ) \. ( s c s s | s a s s ) $ / ;
2021 }
2122
23+ if ( isLess ) {
24+ styleRegex = / \. ( l e s s ) $ / ;
25+ styleModuleRegex = / \. ( m o d u l e | m ) .l e s s $ / ;
26+ }
27+
2228 const styleLoader = require . resolve ( 'style-loader' ) ;
2329
2430 const miniCss = MiniCssExtractPlugin . loader ;
@@ -70,6 +76,13 @@ function getStyleLoader(options) {
7076 } ) ;
7177 }
7278
79+ if ( isLess ) {
80+ loaders . push ( {
81+ loader : require . resolve ( 'less-loader' ) ,
82+ options : { javascriptEnabled : true }
83+ } ) ;
84+ }
85+
7386 return {
7487 test : isModules ? styleModuleRegex : styleRegex ,
7588 exclude : isModules ? '//' : styleModuleRegex ,
@@ -145,10 +158,14 @@ module.exports.loaders = [
145158 getStyleLoader ( ) ,
146159 // Process Sass
147160 getStyleLoader ( { sass : true } ) ,
161+ // Process Less
162+ getStyleLoader ( { less : true } ) ,
148163 // Process Css Modules
149164 getStyleLoader ( { modules : true } ) ,
150165 // Process Sass Modules
151166 getStyleLoader ( { sass : true , modules : true } ) ,
167+ // Process Less Modules
168+ getStyleLoader ( { less : true , modules : true } ) ,
152169 {
153170 test : / \. s v g $ / ,
154171 exclude : / [ \\ / ] n o d e _ m o d u l e s [ \\ / ] / ,
0 commit comments