@@ -6,7 +6,7 @@ var csso = require("csso");
6
6
var SourceMapGenerator = require ( "source-map" ) . SourceMapGenerator ;
7
7
var loaderUtils = require ( "loader-utils" ) ;
8
8
9
- module . exports = function ( content ) {
9
+ module . exports = function ( content , map ) {
10
10
this . cacheable && this . cacheable ( ) ;
11
11
var result = [ ] ;
12
12
var queryString = this . query || "" ;
@@ -61,25 +61,30 @@ module.exports = function(content) {
61
61
if ( query . sourceMap && ! minimize ) {
62
62
var cssRequest = loaderUtils . getRemainingRequest ( this ) ;
63
63
var request = loaderUtils . getCurrentRequest ( this ) ;
64
- var sourceMap = new SourceMapGenerator ( {
65
- file : request
66
- } ) ;
67
- var lines = content . split ( "\n" ) . length ;
68
- for ( var i = 0 ; i < lines ; i ++ ) {
69
- sourceMap . addMapping ( {
70
- generated : {
71
- line : i + 1 ,
72
- column : 0
73
- } ,
74
- source : cssRequest ,
75
- original : {
76
- line : i + 1 ,
77
- column : 0
78
- } ,
64
+ if ( ! map ) {
65
+ var sourceMap = new SourceMapGenerator ( {
66
+ file : request
79
67
} ) ;
68
+ var lines = content . split ( "\n" ) . length ;
69
+ for ( var i = 0 ; i < lines ; i ++ ) {
70
+ sourceMap . addMapping ( {
71
+ generated : {
72
+ line : i + 1 ,
73
+ column : 0
74
+ } ,
75
+ source : cssRequest ,
76
+ original : {
77
+ line : i + 1 ,
78
+ column : 0
79
+ } ,
80
+ } ) ;
81
+ }
82
+ sourceMap . setSourceContent ( cssRequest , content ) ;
83
+ map = JSON . stringify ( sourceMap . toJSON ( ) ) ;
84
+ } else if ( typeof map !== "string" ) {
85
+ map = JSON . stringify ( map ) ;
80
86
}
81
- sourceMap . setSourceContent ( cssRequest , content ) ;
82
- result . push ( "exports.push([module.id, " + css + ", \"\", " + JSON . stringify ( sourceMap . toJSON ( ) ) + "]);" ) ;
87
+ result . push ( "exports.push([module.id, " + css + ", \"\", " + map + "]);" ) ;
83
88
} else {
84
89
result . push ( "exports.push([module.id, " + css + ", \"\"]);" ) ;
85
90
}
0 commit comments