module.exports = (api) => { const env = api.env(); const envOptions = { debug: false, modules: false, useBuiltIns: 'usage', corejs: '3.15', }; const config = { presets: [ '@babel/react', '@babel/typescript', ['@babel/env', envOptions], ], plugins: [ '@babel/syntax-dynamic-import', ['@babel/proposal-object-rest-spread', { useBuiltIns: true }], '@babel/proposal-class-properties', ['react-intl', { messagesDir: './build/messages/' }], 'preval', ], 'sourceType': 'unambiguous', }; switch (env) { case 'production': config.plugins.push(...[ 'lodash', '@babel/transform-react-inline-elements', [ '@babel/transform-runtime', { helpers: true, regenerator: false, useESModules: true, }, ], ]); break; case 'development': config.plugins.push(...[ '@babel/transform-react-jsx-source', '@babel/transform-react-jsx-self', ]); break; case 'test': config.plugins.push(...[ 'transform-require-context', ]); envOptions.modules = 'commonjs'; break; } return config; };