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 };