12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576 |
- module.exports = (api) => {
- const env = api.env();
- const reactOptions = {
- development: false,
- runtime: 'automatic',
- };
- const envOptions = {
- loose: true,
- modules: false,
- debug: false,
- include: [
- 'transform-numeric-separator',
- 'transform-optional-chaining',
- 'transform-nullish-coalescing-operator',
- 'transform-class-properties',
- ],
- };
- const config = {
- presets: [
- '@babel/preset-typescript',
- ['@babel/react', reactOptions],
- ['@babel/env', envOptions],
- ],
- plugins: [
- ['formatjs'],
- 'preval',
- ],
- overrides: [
- {
- test: /tesseract\.js/,
- presets: [
- ['@babel/env', { ...envOptions, modules: 'commonjs' }],
- ],
- },
- ],
- };
- switch (env) {
- case 'production':
- 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':
- reactOptions.development = true;
- envOptions.debug = true;
- break;
- case 'test':
- envOptions.modules = 'commonjs';
- break;
- }
- return config;
- };
|