66 lines
		
	
	
	
		
			1.3 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
		
		
			
		
	
	
			66 lines
		
	
	
	
		
			1.3 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| 
								 | 
							
								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;
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								
							 |