11const optimizer = require ( './optimizer' ) ;
2+ let HtmlWebpackPlugin = null ;
3+ try {
4+ HtmlWebpackPlugin = require ( 'html-webpack-plugin' ) ;
5+ } catch {
6+ // ignore
7+ }
28
3- const runner = ( compiler , compilation , opts ) => {
4- const optimize = optimizer ( compiler , compilation , opts ) ;
5- return ( chunks , callback ) => {
6- optimize ( chunks ) ;
9+ const runner = ( opts ) => {
10+ const optimize = optimizer ( opts ) ;
11+ return ( compiler , compilation , chunks , callback ) => {
12+ optimize ( compiler , compilation , chunks ) ;
713 callback ( ) ;
814 } ;
915}
@@ -17,7 +23,18 @@ class Plugin {
1723 compiler . hooks . compilation . tap (
1824 'MangleCssClassPluginHooks' ,
1925 ( compilation ) => {
20- compilation . hooks . processAssets . tapAsync ( 'MangleCssClassPluginOptimizeChunkAssetsHooks' , runner ( compiler , compilation , this . opts ) ) ;
26+ if ( ! this . fn ) {
27+ this . fn = runner ( this . opts ) ;
28+ }
29+ if ( HtmlWebpackPlugin ) {
30+ HtmlWebpackPlugin . getHooks ( compilation ) . afterEmit . tapAsync (
31+ 'MangleCssClassPluginOptimizeChunkAssetsHooks' ,
32+ ( data , callback ) => {
33+ this . fn ( compiler , compilation , { [ data . outputName ] : compilation . assets [ data . outputName ] } , callback ) ;
34+ } ,
35+ ) ;
36+ }
37+ compilation . hooks . processAssets . tapAsync ( 'MangleCssClassPluginOptimizeChunkAssetsHooks' , ( chunks , callback ) => this . fn ( compiler , compilation , chunks , callback ) ) ;
2138 }
2239 ) ;
2340 }
0 commit comments