babel.config.js
 1  const cloneDeep = require('lodash.clonedeep');
 2  
 3  module.exports = api => {
 4    const env = api.env();
 5  
 6    const base = {
 7      plugins: [
 8        '@babel/plugin-proposal-class-properties',
 9        [
10          '@babel/plugin-transform-runtime',
11          {
12            corejs: 2
13          }
14        ]
15      ],
16      presets: ['@babel/preset-env']
17    };
18  
19    if (env === 'base' || env.startsWith('base:')) {
20      return base;
21    }
22  
23    const node = cloneDeep(base);
24    node.presets[0] = [
25      node.presets[0],
26      {
27        targets: { node: '8.11.3' }
28      }
29    ];
30  
31    if (env === 'node' || env.startsWith('node:')) {
32      return node;
33    }
34  
35    const test = cloneDeep(node);
36  
37    if (env === 'test') {
38      return test;
39    }
40  
41    return {};
42  };