You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
65 lines
1.3 KiB
65 lines
1.3 KiB
module.exports = (api) => { |
|
const env = api.env(); |
|
|
|
const envOptions = { |
|
debug: false, |
|
loose: true, |
|
modules: false, |
|
}; |
|
|
|
const config = { |
|
presets: [ |
|
'@babel/react', |
|
['@babel/env', envOptions], |
|
], |
|
plugins: [ |
|
'@babel/syntax-dynamic-import', |
|
['@babel/proposal-object-rest-spread', { useBuiltIns: true }], |
|
['@babel/proposal-decorators', { legacy: true }], |
|
'@babel/proposal-class-properties', |
|
['react-intl', { messagesDir: './build/messages' }], |
|
'preval', |
|
], |
|
}; |
|
|
|
switch (env) { |
|
case 'production': |
|
envOptions.debug = false; |
|
config.plugins.push(...[ |
|
'lodash', |
|
[ |
|
'transform-react-remove-prop-types', |
|
{ |
|
mode: 'remove', |
|
removeImport: true, |
|
additionalLibraries: [ |
|
'react-immutable-proptypes', |
|
], |
|
}, |
|
], |
|
'@babel/transform-react-inline-elements', |
|
[ |
|
'@babel/transform-runtime', |
|
{ |
|
helpers: true, |
|
regenerator: false, |
|
useESModules: true, |
|
}, |
|
], |
|
]); |
|
break; |
|
case 'development': |
|
envOptions.debug = true; |
|
config.plugins.push(...[ |
|
'@babel/transform-react-jsx-source', |
|
'@babel/transform-react-jsx-self', |
|
]); |
|
break; |
|
case 'test': |
|
envOptions.modules = 'commonjs'; |
|
break; |
|
} |
|
|
|
return config; |
|
}; |
|
|
|
|