@@ -8,7 +8,6 @@ var ReplaceMany = require("./ReplaceMany");
88var loaderUtils = require ( "loader-utils" ) ;
99var SourceListMap = require ( "source-list-map" ) . SourceListMap ;
1010var CleanCSS = require ( "clean-css" ) ;
11- var getLocalIdent = require ( "./getLocalIdent" ) ;
1211
1312module . exports = function ( content , map ) {
1413 if ( this . cacheable ) this . cacheable ( ) ;
@@ -17,8 +16,6 @@ module.exports = function(content, map) {
1716 var forceMinimize = query . minimize ;
1817 var importLoaders = parseInt ( query . importLoaders , 10 ) || 0 ;
1918 var minimize = typeof forceMinimize !== "undefined" ? ! ! forceMinimize : ( this && this . minimize ) ;
20- var localIdentName = query . localIdentName || "[hash:base64]" ;
21- var localIdentRegExp = query . localIdentRegExp ;
2219
2320 if ( typeof map !== "string" ) {
2421 map = JSON . stringify ( map ) ;
@@ -65,26 +62,7 @@ module.exports = function(content, map) {
6562 // replace :local()
6663 var locals = { } ;
6764 var localExtends = { } ;
68- stuff . locals . forEach ( function ( local ) {
69- var ident ;
70- var name = local . name ;
71- if ( ! locals [ name ] ) {
72- ident = getLocalIdent ( this , localIdentName , name , {
73- regExp : localIdentRegExp
74- } ) ;
75- locals [ name ] = ident ;
76- } else {
77- ident = locals [ name ] ;
78- }
79- if ( local . extends ) {
80- local . extends . forEach ( function ( extend ) {
81- if ( ! localExtends [ name ] )
82- localExtends [ name ] = [ ] ;
83- localExtends [ name ] . push ( extend ) ;
84- } ) ;
85- }
86- replacer . replace ( local . start , local . length , local . prefix + ident ) ;
87- } , this ) ;
65+ require ( "./processLocals" ) . call ( this , stuff . locals , query , replacer , locals , localExtends ) ;
8866
8967 // remove stuff
9068 stuff . remove . forEach ( function ( rem ) {
@@ -99,37 +77,9 @@ module.exports = function(content, map) {
9977 }
10078
10179 // generate the locals
102- var localKeys = Object . keys ( locals ) ;
103- if ( localKeys . length > 0 ) {
104- var localLines = localKeys . map ( function ( key , idx ) {
105- var line = " " + JSON . stringify ( key ) + ": " ;
106- function addExtend ( extend ) {
107- if ( extend . from ) {
108- var importUrl = importUrlPrefix + extend . from ;
109- if ( importedUrls . indexOf ( importUrl ) < 0 ) {
110- result . push ( "exports.i(require(" + loaderUtils . stringifyRequest ( this , importUrl ) + "), \"\");" ) ;
111- importedUrls . push ( importUrl ) ;
112- }
113- line += " + \" \" + require(" + loaderUtils . stringifyRequest ( this , importUrl ) + ").locals[" + JSON . stringify ( extend . name ) + "]" ;
114- } else if ( locals [ extend . name ] ) {
115- line += " + \" \" + " + JSON . stringify ( locals [ extend . name ] ) ;
116- if ( localExtends [ extend . name ] ) {
117- localExtends [ extend . name ] . forEach ( addExtend , this ) ;
118- }
119- } else if ( this . emitError ) {
120- this . emitError ( "Cannot extend from unknown class '" + extend . name + "'" ) ;
121- }
122- }
123- line += JSON . stringify ( locals [ key ] ) ;
124- if ( localExtends [ key ] ) {
125- localExtends [ key ] . forEach ( addExtend , this ) ;
126- }
127- if ( idx !== localKeys . length - 1 ) line += "," ;
128- return line ;
129- } , this ) ;
130- result . push ( "exports.locals = {" ) ;
131- result . push ( localLines . join ( "\n" ) ) ;
132- result . push ( "};" ) ;
80+ var localsData = require ( "./generateLocals" ) . call ( this , locals , localExtends , importedUrls , importUrlPrefix , result , ".locals" ) ;
81+ if ( localsData ) {
82+ result . push ( "exports.locals = " + localsData + ";" ) ;
13383 }
13484
13585 // transform the CSS
0 commit comments