@@ -3,46 +3,13 @@ const path = require('path')
3
3
const zlib = require ( 'zlib' )
4
4
const uglify = require ( 'uglify-js' )
5
5
const rollup = require ( 'rollup' )
6
- const buble = require ( 'rollup-plugin-buble' )
7
- const flow = require ( 'rollup-plugin-flow-no-whitespace' )
8
- const cjs = require ( 'rollup-plugin-commonjs' )
9
- const node = require ( 'rollup-plugin-node-resolve' )
10
- const replace = require ( 'rollup-plugin-replace' )
11
- const version = process . env . VERSION || require ( '../package.json' ) . version
12
- const banner =
13
- `/**
14
- * vue-router v${ version }
15
- * (c) ${ new Date ( ) . getFullYear ( ) } Evan You
16
- * @license MIT
17
- */`
6
+ const configs = require ( './configs' )
18
7
19
8
if ( ! fs . existsSync ( 'dist' ) ) {
20
9
fs . mkdirSync ( 'dist' )
21
10
}
22
11
23
- const resolve = _path => path . resolve ( __dirname , '../' , _path )
24
-
25
- build ( [
26
- // browser dev
27
- {
28
- dest : resolve ( 'dist/vue-router.js' ) ,
29
- format : 'umd' ,
30
- env : 'development'
31
- } ,
32
- {
33
- dest : resolve ( 'dist/vue-router.min.js' ) ,
34
- format : 'umd' ,
35
- env : 'production'
36
- } ,
37
- {
38
- dest : resolve ( 'dist/vue-router.common.js' ) ,
39
- format : 'cjs'
40
- } ,
41
- {
42
- dest : resolve ( 'dist/vue-router.esm.js' ) ,
43
- format : 'es'
44
- }
45
- ] . map ( genConfig ) )
12
+ build ( Object . keys ( configs ) . map ( key => configs [ key ] ) )
46
13
47
14
function build ( builds ) {
48
15
let built = 0
@@ -59,51 +26,24 @@ function build (builds) {
59
26
next ( )
60
27
}
61
28
62
- function genConfig ( opts ) {
63
- const config = {
64
- entry : resolve ( 'src/index.js' ) ,
65
- dest : opts . dest ,
66
- format : opts . format ,
67
- banner,
68
- moduleName : 'VueRouter' ,
69
- plugins : [
70
- flow ( ) ,
71
- node ( ) ,
72
- cjs ( ) ,
73
- replace ( {
74
- __VERSION__ : version
75
- } ) ,
76
- buble ( )
77
- ]
78
- }
79
-
80
- if ( opts . env ) {
81
- config . plugins . unshift ( replace ( {
82
- 'process.env.NODE_ENV' : JSON . stringify ( opts . env )
83
- } ) )
84
- }
85
-
86
- return config
87
- }
88
-
89
- function buildEntry ( config ) {
90
- const isProd = / m i n \. j s $ / . test ( config . dest )
91
- return rollup . rollup ( config ) . then ( bundle => {
92
- const code = bundle . generate ( config ) . code
93
- if ( isProd ) {
94
- var minified = ( config . banner ? config . banner + '\n' : '' ) + uglify . minify ( code , {
95
- output : {
96
- ascii_only : true
97
- } ,
98
- compress : {
99
- pure_funcs : [ 'makeMap' ]
100
- }
101
- } ) . code
102
- return write ( config . dest , minified , true )
103
- } else {
104
- return write ( config . dest , code )
105
- }
106
- } )
29
+ function buildEntry ( { input, output } ) {
30
+ const isProd = / m i n \. j s $ / . test ( output . file )
31
+ return rollup . rollup ( input )
32
+ . then ( bundle => bundle . generate ( output ) )
33
+ . then ( ( { code } ) => {
34
+ if ( isProd ) {
35
+ var minified = ( output . banner ? output . banner + '\n' : '' ) + uglify . minify ( code , {
36
+ output : {
37
+ /* eslint-disable camelcase */
38
+ ascii_only : true
39
+ /* eslint-enable camelcase */
40
+ }
41
+ } ) . code
42
+ return write ( output . file , minified , true )
43
+ } else {
44
+ return write ( output . file , code )
45
+ }
46
+ } )
107
47
}
108
48
109
49
function write ( dest , code , zip ) {
0 commit comments