@@ -35,32 +35,35 @@ function OptimizeCssAssetsPlugin(options) {
35
35
} ;
36
36
37
37
OptimizeCssAssetsPlugin . prototype . processCss = function ( assetName , asset , assets ) {
38
- var css = asset . source ( ) ;
38
+ var css = asset . sourceAndMap ? asset . sourceAndMap ( ) : { source : asset . source ( ) } ;
39
39
var processOptions = Object . assign (
40
40
{ from : assetName , to : assetName } ,
41
- this . options . cssProcessorOptions || { }
41
+ this . options . cssProcessorOptions
42
42
) ;
43
43
if ( processOptions . map && ! processOptions . map . prev ) {
44
44
try {
45
- var mapJson = assets . getAsset ( assetName + '.map' ) ;
46
- if ( mapJson ) {
47
- var map = JSON . parse ( mapJson ) ;
48
- if (
49
- map &&
50
- (
51
- ( map . sources && map . sources . length > 0 ) ||
52
- ( map . mappings && map . mappings . length > 0 )
53
- )
54
- ) {
55
- processOptions . map = Object . assign ( { prev : mapJson } , processOptions . map ) ;
45
+ let map = css . map ;
46
+ if ( ! map ) {
47
+ const mapJson = assets . getAsset ( assetName + '.map' ) ;
48
+ if ( mapJson ) {
49
+ map = JSON . parse ( mapJson ) ;
56
50
}
57
51
}
52
+ if (
53
+ map &&
54
+ (
55
+ ( map . sources && map . sources . length > 0 ) ||
56
+ ( map . mappings && map . mappings . length > 0 )
57
+ )
58
+ ) {
59
+ processOptions . map = Object . assign ( { prev : map } , processOptions . map ) ;
60
+ }
58
61
} catch ( err ) {
59
62
console . warn ( 'OptimizeCssAssetsPlugin.processCss() Error getting previous source map' , err ) ;
60
63
}
61
64
}
62
65
return this . options
63
- . cssProcessor . process ( css , processOptions )
66
+ . cssProcessor . process ( css . source , processOptions )
64
67
. then ( r => {
65
68
if ( processOptions . map && r . map && r . map . toString ) {
66
69
assets . setAsset ( assetName + '.map' , r . map . toString ( ) ) ;
0 commit comments