-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathbabel.config.js
55 lines (45 loc) · 1.55 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
// const packageJSON = require('./package');
module.exports = function (api) {
api.cache(true);
const config = {
env: {
production: {
plugins: [],
ignore: [],
presets: [],
},
test: {
presets: [],
plugins: [],
},
},
};
/** Plugins */
// https://babeljs.io/docs/en/babel-plugin-proposal-export-default-from
config.env.production.plugins.push('@babel/plugin-proposal-export-default-from');
// https://babeljs.io/docs/en/next/babel-plugin-proposal-object-rest-spread.html
config.env.production.plugins.push('@babel/plugin-proposal-object-rest-spread');
// https://babeljs.io/docs/en/babel-plugin-proposal-class-properties
config.env.production.plugins.push('@babel/plugin-proposal-class-properties');
config.env.production.plugins.push('add-module-exports');
config.env.production.plugins.push('dynamic-import-node');
/** Ignore Files */
config.env.production.ignore.push('./node_modules');
config.env.production.ignore.push('./dist');
config.env.production.ignore.push('./*.test.js');
/** Presets */
config.env.production.presets.push('@babel/preset-env');
/** Test Env Presets */
config.env.test.presets.push([
'@babel/preset-env',
{
modules: 'commonjs',
targets: { node: 'current' },
},
]);
/** Test Env Plugins */
config.env.test.plugins.push('@babel/plugin-proposal-class-properties');
config.env.test.plugins.push('@babel/plugin-proposal-export-default-from');
config.env.development = config.env.production;
return config;
};