@@ -33,6 +33,7 @@ module.exports = function(content, map) {
33
33
if ( err ) return callback ( err ) ;
34
34
35
35
var cssAsString = JSON . stringify ( result . source ) ;
36
+ var rtlcssAsString = JSON . stringify ( rtlcss . process ( result . source ) ) ;
36
37
37
38
// for importing CSS
38
39
var importUrlPrefix = getImportPrefix ( this , query ) ;
@@ -86,15 +87,34 @@ module.exports = function(content, map) {
86
87
} . bind ( this ) ) ;
87
88
}
88
89
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
+
89
111
90
112
var exportJs = compileExports ( result , importItemMatcher . bind ( this ) , camelCaseKeys ) ;
91
113
if ( exportJs ) {
92
114
exportJs = "exports.locals = " + exportJs + ";" ;
93
115
}
94
116
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 ;
98
118
99
119
var moduleJs ;
100
120
if ( query . sourceMap && result . map ) {
0 commit comments