-
Notifications
You must be signed in to change notification settings - Fork 125
/
Copy pathbabel.config.js
64 lines (63 loc) · 1.64 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
module.exports = (api) => {
const isWebpack = api.caller((caller) => Boolean(caller && caller.name === 'babel-loader'));
return {
presets: [
[
'@babel/preset-env',
isWebpack
? {
targets: {
browsers: [
'>0.25%',
'not dead',
'not ie 11',
'not op_mini all',
'not android <= 4.4',
'not samsung <= 4',
],
},
exclude: ['transform-typeof-symbol'],
useBuiltIns: 'usage',
corejs: 3,
modules: false,
}
: {
targets: {
node: '12.16',
},
},
],
'@babel/preset-react',
'@babel/preset-typescript',
],
plugins: [
'@babel/plugin-syntax-dynamic-import',
'@babel/plugin-proposal-class-properties',
'lodash',
...(isWebpack
? [
'webpack-chunkname', // for code splitting
]
: [
'dynamic-import-node', // to transpile import() to a deferred require()
[
'file-loader', // to transpile require(image) to a url
{
name: '[hash].[ext]',
extensions: ['png', 'jpg', 'jpeg', 'gif', 'svg'],
publicPath: '/dist/assets',
outputPath: '/build/assets',
context: '',
limit: 0,
},
],
]),
],
overrides: [
{
test: './src/client/vendor',
compact: true,
},
],
};
};