@@ -8,53 +8,69 @@ function ProgressPlugin(handler) {
88module . exports = ProgressPlugin ;
99
1010ProgressPlugin . prototype . apply = function ( compiler ) {
11- var lastModulesCount = 0 ;
12- var moduleCount = 1 ;
13- var doneModules = 0 ;
1411 var handler = this . handler ;
15- function update ( ) {
16- handler ( 0.1 + ( doneModules / Math . max ( lastModulesCount , moduleCount ) ) * 0.6 , doneModules + "/" + moduleCount + " build modules" ) ;
17- }
18- compiler . plugin ( "compilation" , function ( compilation ) {
19- if ( compilation . compiler . isChild ( ) ) return ;
20- lastModulesCount = moduleCount ;
21- moduleCount = 0 ;
22- doneModules = 0 ;
23- handler ( 0 , "compile" ) ;
24- compilation . plugin ( "build-module" , function ( module ) {
25- moduleCount ++ ;
26- update ( ) ;
27- } ) ;
28- compilation . plugin ( "succeed-module" , function ( module ) {
29- doneModules ++ ;
30- update ( ) ;
31- } ) ;
32- compilation . plugin ( "optimize" , function ( ) {
33- handler ( 0.73 , "optimize" ) ;
34- } ) ;
35- compilation . plugin ( "before-hash" , function ( ) {
36- handler ( 0.75 , "hashing" ) ;
12+ if ( compiler . compilers ) {
13+ var states = new Array ( compiler . compilers . length ) ;
14+ compiler . compilers . forEach ( function ( compiler , idx ) {
15+ compiler . apply ( new ProgressPlugin ( function ( p , msg ) {
16+ states [ idx ] = [ p , msg ] ;
17+ handler ( states . map ( function ( state ) {
18+ return state && state [ 0 ] || 0 ;
19+ } ) . reduce ( function ( a , b ) {
20+ return a + b ;
21+ } ) / states . length , states . map ( function ( state ) {
22+ return state && state [ 1 ] ;
23+ } ) . filter ( Boolean ) . join ( " | " ) ) ;
24+ } ) ) ;
3725 } ) ;
38- compilation . plugin ( "before-chunk-assets" , function ( ) {
39- handler ( 0.76 , "create chunk assets" ) ;
26+ } else {
27+ var lastModulesCount = 0 ;
28+ var moduleCount = 1 ;
29+ var doneModules = 0 ;
30+ function update ( ) {
31+ handler ( 0.1 + ( doneModules / Math . max ( lastModulesCount , moduleCount ) ) * 0.6 , doneModules + "/" + moduleCount + " build modules" ) ;
32+ }
33+ compiler . plugin ( "compilation" , function ( compilation ) {
34+ if ( compilation . compiler . isChild ( ) ) return ;
35+ lastModulesCount = moduleCount ;
36+ moduleCount = 0 ;
37+ doneModules = 0 ;
38+ handler ( 0 , "compile" ) ;
39+ compilation . plugin ( "build-module" , function ( module ) {
40+ moduleCount ++ ;
41+ update ( ) ;
42+ } ) ;
43+ compilation . plugin ( "succeed-module" , function ( module ) {
44+ doneModules ++ ;
45+ update ( ) ;
46+ } ) ;
47+ compilation . plugin ( "optimize" , function ( ) {
48+ handler ( 0.73 , "optimize" ) ;
49+ } ) ;
50+ compilation . plugin ( "before-hash" , function ( ) {
51+ handler ( 0.75 , "hashing" ) ;
52+ } ) ;
53+ compilation . plugin ( "before-chunk-assets" , function ( ) {
54+ handler ( 0.76 , "create chunk assets" ) ;
55+ } ) ;
56+ compilation . plugin ( "additional-chunk-assets" , function ( ) {
57+ handler ( 0.78 , "additional chunk assets" ) ;
58+ } ) ;
59+ compilation . plugin ( "optimize-chunk-assets" , function ( chunks , callback ) {
60+ handler ( 0.8 , "optimize chunk assets" ) ;
61+ callback ( ) ;
62+ } ) ;
63+ compilation . plugin ( "optimize-assets" , function ( assets , callback ) {
64+ handler ( 0.9 , "optimize assets" ) ;
65+ callback ( ) ;
66+ } ) ;
4067 } ) ;
41- compilation . plugin ( "additional-chunk-assets" , function ( ) {
42- handler ( 0.78 , "additional chunk assets" ) ;
43- } ) ;
44- compilation . plugin ( "optimize-chunk-assets" , function ( chunks , callback ) {
45- handler ( 0.8 , "optimize chunk assets" ) ;
68+ compiler . plugin ( "emit" , function ( compilation , callback ) {
69+ handler ( 0.95 , "emit" ) ;
4670 callback ( ) ;
4771 } ) ;
48- compilation . plugin ( "optimize-assets" , function ( assets , callback ) {
49- handler ( 0.9 , "optimize assets" ) ;
50- callback ( ) ;
72+ compiler . plugin ( "done" , function ( stats ) {
73+ handler ( 1 , "" ) ;
5174 } ) ;
52- } ) ;
53- compiler . plugin ( "emit" , function ( compilation , callback ) {
54- handler ( 0.95 , "emit" ) ;
55- callback ( ) ;
56- } ) ;
57- compiler . plugin ( "done" , function ( stats ) {
58- handler ( 1 , "" ) ;
59- } ) ;
75+ }
6076} ;
0 commit comments