@@ -33,6 +33,7 @@ module.exports = function(content, map) {
3333if ( err ) return callback ( err ) ;
3434
3535var cssAsString = JSON . stringify ( result . source ) ;
36+ var rtlcssAsString = JSON . stringify ( rtlcss . process ( result . source ) ) ;
3637
3738// for importing CSS
3839var importUrlPrefix = getImportPrefix ( this , query ) ;
@@ -86,15 +87,34 @@ module.exports = function(content, map) {
8687} . bind ( this ) ) ;
8788}
8889
90+ rtlcssAsString = rtlcssAsString . replace ( result . importItemRegExpG , importItemMatcher . bind ( this ) ) ;
91+ if ( query . url !== false ) {
92+ rtlcssAsString = rtlcssAsString . replace ( result . urlItemRegExpG , function ( item ) {
93+ var match = result . urlItemRegExp . exec ( item ) ;
94+ var idx = + match [ 1 ] ;
95+ var urlItem = result . urlItems [ idx ] ;
96+ var url = urlItem . url ;
97+ idx = url . indexOf ( "?#" ) ;
98+ if ( idx < 0 ) idx = url . indexOf ( "#" ) ;
99+ var urlRequest ;
100+ if ( idx > 0 ) { // idx === 0 is catched by isUrlRequest
101+ // in cases like url('webfont.eot?#iefix')
102+ urlRequest = url . substr ( 0 , idx ) ;
103+ return "\" + require(" + loaderUtils . stringifyRequest ( this , urlRequest ) + ") + \"" +
104+ url . substr ( idx ) ;
105+ }
106+ urlRequest = url ;
107+ return "\" + require(" + loaderUtils . stringifyRequest ( this , urlRequest ) + ") + \"" ;
108+ } . bind ( this ) ) ;
109+ }
110+
89111
90112var exportJs = compileExports ( result , importItemMatcher . bind ( this ) , camelCaseKeys ) ;
91113if ( exportJs ) {
92114exportJs = "exports.locals = " + exportJs + ";" ;
93115}
94116
95- var rtlcssAsString = JSON . stringify ( rtlcss . process ( JSON . parse ( cssAsString ) ) )
96-
97- var cssString = "document.getElementsByTagName('html')[0].getAttribute('dir') === 'rtl' ? " + rtlcssAsString + " : " + cssAsString ;
117+ var cssString = "typeof document !== 'undefined' && document.getElementsByTagName('html')[0].getAttribute('dir') === 'rtl' ? " + rtlcssAsString + " : " + cssAsString ;
98118
99119var moduleJs ;
100120if ( query . sourceMap && result . map ) {
0 commit comments