-
Notifications
You must be signed in to change notification settings - Fork 1
/
babel.config.js
68 lines (61 loc) · 1.2 KB
/
babel.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
const env = process.env.BABEL_ENV || 'cjs';
const presets = [
'@babel/preset-react'
];
const plugins = [
[
'babel-plugin-module-resolver',
{
root: ['./src']
}
],
[
'babel-plugin-transform-builtin-extend',
{
globals: ['Error']
}
],
'@babel/plugin-syntax-dynamic-import',
'@babel/plugin-transform-async-to-generator',
'@babel/plugin-proposal-class-properties',
['@babel/plugin-proposal-decorators', { 'legacy': true }],
'@babel/plugin-proposal-object-rest-spread',
'@babel/plugin-transform-regenerator',
'@babel/plugin-transform-runtime'
];
switch (env) {
case 'cjs':
presets.push([
'@babel/preset-env',
{
targets: {
node: 'current',
},
modules: 'commonjs',
useBuiltIns: 'usage',
corejs: '3.0.0',
},
]);
break;
case 'es6':
presets.push([
'@babel/preset-env',
{
targets: {
node: 'current',
},
modules: false,
useBuiltIns: 'usage',
corejs: '3.0.0',
},
]);
plugins.push('lodash');
plugins.push('./build/use-lodash-es');
break;
default:
break;
}
module.exports = {
presets,
plugins,
};