const isProduction = process.env.NODE_ENV === 'production'; const isTest = process.env.NODE_ENV === 'test'; const presets = () => { if (isTest) { return [ '@babel/preset-react', '@babel/preset-env', ]; } return [ '@babel/preset-react', ['@babel/preset-env', { modules: false, }], ]; }; const plugins = () => { const defaultPlugins = [ 'lodash', ['babel-plugin-transform-builtin-extend', { globals: ['Error'] }], 'transform-export-extensions', '@babel/plugin-proposal-class-properties', '@babel/plugin-proposal-object-rest-spread', '@babel/plugin-proposal-export-default-from', ]; if (isProduction) { return [ ...defaultPlugins, ['emotion', { hoist: true }], ]; } if (isTest) { return [ ...defaultPlugins, ['inline-svg', { svgo: { plugins: [ {removeViewBox: false}, ], }, }], ['emotion', { sourceMap: true, autoLabel: true, }], ]; } return [ ...defaultPlugins, ['emotion', { sourceMap: true, autoLabel: true, }], ]; }; module.exports = { presets: presets(), plugins: plugins(), };