@@ -30,33 +30,36 @@ class OptimizeCssAssetsWebpackPlugin extends LastCallWebpackPlugin {
3030 }
3131
3232 processCss ( assetName , asset , assets ) {
33- const css = asset . source ( ) ;
33+ const css = asset . sourceAndMap ? asset . sourceAndMap ( ) : { source : asset . source ( ) } ;
3434 const processOptions = Object . assign (
3535 { from : assetName , to : assetName } ,
36- this . options . cssProcessorOptions || { }
36+ this . options . cssProcessorOptions
3737 ) ;
3838
3939 if ( processOptions . map && ! processOptions . map . prev ) {
4040 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 ) ;
5246 }
5347 }
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+ }
5457 } catch ( err ) {
5558 console . warn ( 'OptimizeCssAssetsPlugin.processCss() Error getting previous source map' , err ) ;
5659 }
5760 }
5861 return this . options
59- . cssProcessor . process ( css , processOptions )
62+ . cssProcessor . process ( css . source , processOptions )
6063 . then ( r => {
6164 if ( processOptions . map && r . map && r . map . toString ) {
6265 assets . setAsset ( assetName + '.map' , r . map . toString ( ) ) ;
0 commit comments