1
1
const fs = require ( 'fs' )
2
2
const path = require ( 'path' )
3
3
const zlib = require ( 'zlib' )
4
- const uglify = require ( 'uglify-js ' )
4
+ const terser = require ( 'terser ' )
5
5
const rollup = require ( 'rollup' )
6
6
const configs = require ( './configs' )
7
7
@@ -27,22 +27,24 @@ function build (builds) {
27
27
}
28
28
29
29
function buildEntry ( { input, output } ) {
30
- const isProd = / m i n \. j s $ / . test ( output . file )
30
+ const { file, banner } = output
31
+ const isProd = / m i n \. j s $ / . test ( file )
31
32
return rollup . rollup ( input )
32
33
. then ( bundle => bundle . generate ( output ) )
33
34
. then ( ( { code } ) => {
34
35
if ( isProd ) {
35
- const minified = uglify . minify ( code , {
36
+ const minified = ( banner ? banner + '\n' : '' ) + terser . minify ( code , {
37
+ toplevel : true ,
36
38
output : {
37
- preamble : output . banner ,
38
- /* eslint-disable camelcase */
39
39
ascii_only : true
40
- /* eslint-enable camelcase */
40
+ } ,
41
+ compress : {
42
+ pure_funcs : [ 'makeMap' ]
41
43
}
42
44
} ) . code
43
- return write ( output . file , minified , true )
45
+ return write ( file , minified , true )
44
46
} else {
45
- return write ( output . file , code )
47
+ return write ( file , code )
46
48
}
47
49
} )
48
50
}
0 commit comments