-
Notifications
You must be signed in to change notification settings - Fork 3
/
rollup.config.js
83 lines (72 loc) · 1.62 KB
/
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
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
import babel from 'rollup-plugin-babel';
import filesize from 'rollup-plugin-filesize';
import conditional from 'rollup-plugin-conditional';
import cleanup from 'rollup-plugin-cleanup';
// Valid build targets
const supportedRuntimes = [
'client',
'node'
];
// NPM injects the name from `package.json` to this env var
const pkgName = process.env.npm_package_name;
// Pass to rollup via --environment flag
const runtimeEnv = process.env.RUNTIME_ENV;
if (!supportedRuntimes.includes(runtimeEnv)) {
throw new Error(
`Invalid runtime environment ${runtimeEnv} sepcified. Valid options: ${supportedRuntimes.join(', ')}`
);
}
export default {
input: `src/${runtimeEnv}.js`,
output: [
{
file: `dist/${runtimeEnv}.js`,
sourcemap: `dist/${runtimeEnv}.map.js`,
format: 'cjs'
}
],
moduleId: pkgName,
name: pkgName,
external: [
'bunyan',
'bunyan-format',
'hide-secrets',
'lodash/isFunction',
'lodash/isObject',
'lodash/mapValues',
'lodash/omit',
'lodash/pick',
'lodash/tail',
'rollbar',
// Client-only
'console',
'le_js',
'lodash/get',
// Server
'le_node',
],
plugins: [
conditional(
runtimeEnv === 'client',
[
babel({
exclude: './node_modules/**',
moduleIds: true,
// Custom babelrc for build
babelrc: false,
presets: [
[ 'es2015', { 'modules': false } ],
'stage-0'
],
plugins: [
'external-helpers'
]
})
]
),
cleanup({
comments: ['some', 'jsdoc']
}),
filesize()
]
};