-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathconfig.js
128 lines (122 loc) · 3.94 KB
/
config.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
const path = require('path')
const flow = require('rollup-plugin-flow-no-whitespace')
const buble = require('rollup-plugin-buble')
const replace = require('rollup-plugin-replace')
const alias = require('rollup-plugin-alias')
const version = process.env.VERSION || require('../package.json').version
const banner =
'/*!\n' +
' * Vue.js v' + version + '\n' +
' * (c) 2014-' + new Date().getFullYear() + ' Evan You\n' +
' * Released under the MIT License.\n' +
' */'
const builds = {
// Runtime only (CommonJS). Used by bundlers e.g. Webpack & Browserify
'web-runtime-cjs': {
entry: path.resolve(__dirname, '../src/entries/web-runtime.js'),
dest: path.resolve(__dirname, '../dist/vue.runtime.common.js'),
format: 'cjs',
banner
},
// Runtime+compiler CommonJS build (CommonJS)
'web-full-cjs': {
entry: path.resolve(__dirname, '../src/entries/web-runtime-with-compiler.js'),
dest: path.resolve(__dirname, '../dist/vue.common.js'),
format: 'cjs',
alias: { he: './entity-decoder' },
banner
},
// runtime-only build (Browser)
'web-runtime-dev': {
entry: path.resolve(__dirname, '../src/entries/web-runtime.js'),
dest: path.resolve(__dirname, '../dist/vue.runtime.js'),
format: 'umd',
env: 'development',
banner
},
// runtime-only production build (Browser)
'web-runtime-prod': {
entry: path.resolve(__dirname, '../src/entries/web-runtime.js'),
dest: path.resolve(__dirname, '../dist/vue.runtime.min.js'),
format: 'umd',
env: 'production',
banner
},
// Runtime+compiler development build (Browser)
'web-full-dev': {
entry: path.resolve(__dirname, '../src/entries/web-runtime-with-compiler.js'),
dest: path.resolve(__dirname, '../dist/vue.js'),
format: 'umd',
env: 'development',
alias: { he: './entity-decoder' },
banner
},
// Runtime+compiler production build (Browser)
'web-full-prod': {
entry: path.resolve(__dirname, '../src/entries/web-runtime-with-compiler.js'),
dest: path.resolve(__dirname, '../dist/vue.min.js'),
format: 'umd',
env: 'production',
alias: { he: './entity-decoder' },
banner
},
// Web compiler (CommonJS).
'web-compiler': {
entry: path.resolve(__dirname, '../src/entries/web-compiler.js'),
dest: path.resolve(__dirname, '../packages/vue-template-compiler/build.js'),
format: 'cjs',
external: ['he', 'de-indent']
},
// Web server renderer (CommonJS).
'web-server-renderer': {
entry: path.resolve(__dirname, '../src/entries/web-server-renderer.js'),
dest: path.resolve(__dirname, '../packages/vue-server-renderer/build.js'),
format: 'cjs',
external: ['stream', 'module', 'vm', 'he', 'de-indent']
},
// Weex runtime framework (CommonJS).
'weex-framework': {
weex: true,
entry: path.resolve(__dirname, '../src/entries/weex-framework.js'),
dest: path.resolve(__dirname, '../packages/weex-vue-framework/index.js'),
format: 'cjs'
},
// Weex compiler (CommonJS). Used by Weex's Webpack loader.
'weex-compiler': {
weex: true,
entry: path.resolve(__dirname, '../src/entries/weex-compiler.js'),
dest: path.resolve(__dirname, '../packages/weex-template-compiler/build.js'),
format: 'cjs',
external: ['he', 'de-indent']
}
}
function genConfig (opts) {
const config = {
entry: opts.entry,
dest: opts.dest,
external: opts.external,
format: opts.format,
banner: opts.banner,
moduleName: 'Vue',
plugins: [
replace({
__WEEX__: !!opts.weex
}),
flow(),
buble(),
alias(Object.assign({}, require('./alias'), opts.alias))
]
}
if (opts.env) {
config.plugins.push(replace({
'process.env.NODE_ENV': JSON.stringify(opts.env)
}))
}
return config
}
if (process.env.TARGET) {
module.exports = genConfig(builds[process.env.TARGET])
} else {
exports.getBuild = name => genConfig(builds[name])
exports.getAllBuilds = () => Object.keys(builds).map(name => genConfig(builds[name]))
}