1
1
const fs = require ( 'fs' ) ;
2
+ const crypto = require ( 'crypto' ) ;
2
3
const rollup = require ( 'rollup' ) ;
3
4
const { babel } = require ( '@rollup/plugin-babel' ) ;
4
5
const { nodeResolve } = require ( '@rollup/plugin-node-resolve' ) ;
5
6
const Terser = require ( 'terser' ) ;
6
7
const replace = require ( '@rollup/plugin-replace' ) ;
7
8
8
9
function build ( cb ) {
10
+ fs . readdirSync ( './public/js' ) . forEach ( ( f ) => {
11
+ if ( f . includes ( 'main' ) ) {
12
+ fs . unlinkSync ( `./public/js/${ f } ` ) ;
13
+ }
14
+ } ) ;
9
15
rollup
10
16
. rollup ( {
11
17
input : './src/js/main.js' ,
@@ -23,25 +29,26 @@ function build(cb) {
23
29
. then ( ( bundle ) => {
24
30
return bundle . write ( {
25
31
strict : true ,
26
- file : './public/js/main-v8 .js' ,
32
+ file : './public/js/main.js' ,
27
33
format : 'umd' ,
28
34
name : 'app' ,
29
35
sourcemap : true ,
30
- sourcemapFile : './public/js/main-v8 .js.map' ,
36
+ sourcemapFile : './public/js/main.js.map' ,
31
37
} ) ;
32
38
} )
33
39
. then ( async ( bundle ) => {
34
40
const result = bundle . output [ 0 ] ;
41
+ const hash = crypto . createHash ( 'md5' ) . update ( result . code ) . digest ( 'hex' ) . slice ( 0 , 6 ) ;
35
42
36
43
const minified = await Terser . minify ( result . code , {
37
44
sourceMap : {
38
45
content : result . map ,
39
- url : ' main-v8. js.map' ,
46
+ url : ` main. ${ hash } . js.map` ,
40
47
} ,
41
48
} ) ;
42
49
43
- fs . writeFileSync ( ' ./public/js/main-v8.js' , minified . code ) ;
44
- fs . writeFileSync ( ' ./public/js/main-v8. js.map' , minified . map ) ;
50
+ fs . writeFileSync ( ` ./public/js/main. ${ hash } .js` , minified . code ) ;
51
+ fs . writeFileSync ( ` ./public/js/main. ${ hash } . js.map` , minified . map ) ;
45
52
46
53
cb ( ) ;
47
54
} )
0 commit comments