@@ -19,6 +19,7 @@ var webpack = require('webpack');
19
19
var config = require ( '../config/webpack.config.prod' ) ;
20
20
var paths = require ( '../config/paths' ) ;
21
21
var recursive = require ( 'recursive-readdir' ) ;
22
+ var stripAnsi = require ( 'strip-ansi' ) ;
22
23
23
24
function removeFileNameHash ( fileName ) {
24
25
return fileName . replace ( paths . appBuild , '' )
@@ -28,13 +29,17 @@ function removeFileNameHash(fileName) {
28
29
}
29
30
30
31
function sizeDifference ( currentSize , previousSize ) {
31
- if ( previousSize === undefined ) { return '' ; }
32
+ var FIFTY_KILOBYTES = 1024 * 50 ;
32
33
var difference = currentSize - previousSize ;
33
- var fileSize = filesize ( difference ) ;
34
- if ( difference > 0 ) {
34
+ var fileSize = ! Number . isNaN ( difference ) ? filesize ( difference ) : 0 ;
35
+ if ( difference >= FIFTY_KILOBYTES ) {
35
36
return chalk . red ( '+' + fileSize ) ;
36
- } else if ( difference <= 0 ) {
37
- return chalk . green ( ( difference === 0 ? '+' : '' ) + fileSize ) ;
37
+ } else if ( difference < FIFTY_KILOBYTES && difference > 0 ) {
38
+ return chalk . yellow ( '+' + fileSize ) ;
39
+ } else if ( difference < 0 ) {
40
+ return chalk . green ( fileSize ) ;
41
+ } else {
42
+ return '' ;
38
43
}
39
44
}
40
45
@@ -86,16 +91,17 @@ function build(previousSizeMap) {
86
91
assets . sort ( ( a , b ) => b . size - a . size ) ;
87
92
88
93
var longestSizeLabelLength = Math . max . apply ( null ,
89
- assets . map ( a => a . sizeLabel . length )
94
+ assets . map ( a => stripAnsi ( a . sizeLabel ) . length )
90
95
) ;
91
96
assets . forEach ( asset => {
92
97
var sizeLabel = asset . sizeLabel ;
93
- if ( sizeLabel . length < longestSizeLabelLength ) {
94
- var rightPadding = ' ' . repeat ( longestSizeLabelLength - sizeLabel . length ) ;
98
+ var sizeLength = stripAnsi ( sizeLabel ) . length ;
99
+ if ( sizeLength < longestSizeLabelLength ) {
100
+ var rightPadding = ' ' . repeat ( longestSizeLabelLength - sizeLength ) ;
95
101
sizeLabel += rightPadding ;
96
102
}
97
103
console . log (
98
- ' ' + chalk . yellow ( sizeLabel ) +
104
+ ' ' + sizeLabel +
99
105
' ' + chalk . dim ( asset . folder + path . sep ) + chalk . cyan ( asset . name )
100
106
) ;
101
107
} ) ;
0 commit comments