@@ -77,31 +77,39 @@ var parserPlugin = postcss.plugin("css-loader-parser", function(options) {
7777exports [ exportName ] = replaceImportsInString ( exports [ exportName ] ) ;
7878} ) ;
7979
80+ function processNode ( item ) {
81+ switch ( item . type ) {
82+ case "value" :
83+ item . nodes . forEach ( processNode ) ;
84+ break ;
85+ case "nested-item" :
86+ item . nodes . forEach ( processNode ) ;
87+ break ;
88+ case "item" :
89+ var importIndex = imports [ "$" + item . name ] ;
90+ if ( typeof importIndex === "number" ) {
91+ item . name = "___CSS_LOADER_IMPORT___" + importIndex + "___" ;
92+ }
93+ break ;
94+ case "url" :
95+ if ( ! / ^ # / . test ( item . url ) && loaderUtils . isUrlRequest ( item . url , options . root ) ) {
96+ item . stringType = "" ;
97+ delete item . innerSpacingBefore ;
98+ delete item . innerSpacingAfter ;
99+ var url = item . url ;
100+ item . url = "___CSS_LOADER_URL___" + urlItems . length + "___" ;
101+ urlItems . push ( {
102+ url : url
103+ } ) ;
104+ }
105+ break ;
106+ }
107+ }
108+
80109css . walkDecls ( function ( decl ) {
81110var values = Tokenizer . parseValues ( decl . value ) ;
82111values . nodes . forEach ( function ( value ) {
83- value . nodes . forEach ( function ( item ) {
84- switch ( item . type ) {
85- case "item" :
86- var importIndex = imports [ "$" + item . name ] ;
87- if ( typeof importIndex === "number" ) {
88- item . name = "___CSS_LOADER_IMPORT___" + importIndex + "___" ;
89- }
90- break ;
91- case "url" :
92- if ( ! / ^ # / . test ( item . url ) && loaderUtils . isUrlRequest ( item . url , options . root ) ) {
93- item . stringType = "" ;
94- delete item . innerSpacingBefore ;
95- delete item . innerSpacingAfter ;
96- var url = item . url ;
97- item . url = "___CSS_LOADER_URL___" + urlItems . length + "___" ;
98- urlItems . push ( {
99- url : url
100- } ) ;
101- }
102- break ;
103- }
104- } ) ;
112+ value . nodes . forEach ( processNode ) ;
105113} ) ;
106114decl . value = Tokenizer . stringifyValues ( values ) ;
107115} ) ;
0 commit comments