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