71 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			71 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
module.exports = (api) => {
 | 
						|
  const env = api.env();
 | 
						|
 | 
						|
  const reactOptions = {
 | 
						|
    development: false,
 | 
						|
  };
 | 
						|
 | 
						|
  const envOptions = {
 | 
						|
    loose: true,
 | 
						|
    modules: false,
 | 
						|
    debug: false,
 | 
						|
  };
 | 
						|
 | 
						|
  const config = {
 | 
						|
    presets: [
 | 
						|
      ['@babel/react', reactOptions],
 | 
						|
      ['@babel/env', envOptions],
 | 
						|
    ],
 | 
						|
    plugins: [
 | 
						|
      ['@babel/proposal-decorators', { legacy: true }],
 | 
						|
      ['react-intl', { messagesDir: './build/messages' }],
 | 
						|
      '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;
 | 
						|
};
 | 
						|
 |