-
Notifications
You must be signed in to change notification settings - Fork 21
/
Copy pathcreate-rollup-config.js
44 lines (37 loc) · 1.05 KB
/
create-rollup-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
/**
* @description 创建 rollup 配置
* @author wangfupeng
*/
import { merge } from 'lodash'
import { visualizer } from 'rollup-plugin-visualizer'
import devConf from './config/dev'
import prdConf from './config/prd'
// 环境变量
const ENV = process.env.NODE_ENV || 'production'
const IS_SIZE_STATS = ENV.indexOf('size_stats') >= 0 // 分析包体积
export const IS_DEV = ENV.indexOf('development') >= 0
export const IS_PRD = ENV.indexOf('production') >= 0
/**
* 生成单个 rollup 配置
* @param {object} customConfig { input, output, plugins ... }
*/
export function createRollupConfig(customConfig = {}) {
const { input, output = {}, plugins = [] } = customConfig
let baseConfig
if (IS_PRD) {
baseConfig = prdConf
} else {
baseConfig = devConf
}
if (IS_SIZE_STATS) {
// 分析包体积。运行之后可查看 package 下的 `stats.html`
plugins.push(visualizer())
}
const config = {
input: input ? input : baseConfig.input,
output,
plugins,
}
const res = merge({}, baseConfig, config)
return res
}