58 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			JavaScript
		
	
	
			
		
		
	
	
			58 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			JavaScript
		
	
	
| const { resolve, isThereHaveBrowserslistConfig } = require('./utils/projectHelper');
 | |
| 
 | |
| module.exports = function (modules) {
 | |
|   const plugins = [
 | |
|     [
 | |
|       resolve('@babel/plugin-transform-typescript'),
 | |
|       {
 | |
|         isTSX: true,
 | |
|       },
 | |
|     ],
 | |
|     [resolve('@vue/babel-plugin-jsx'), { mergeProps: false, enableObjectSlots: false }],
 | |
|     resolve('@babel/plugin-proposal-optional-chaining'),
 | |
|     resolve('@babel/plugin-transform-object-assign'),
 | |
|     resolve('@babel/plugin-proposal-object-rest-spread'),
 | |
|     resolve('@babel/plugin-proposal-export-default-from'),
 | |
|     resolve('@babel/plugin-proposal-export-namespace-from'),
 | |
|     resolve('@babel/plugin-proposal-class-properties'),
 | |
|     resolve('@babel/plugin-syntax-dynamic-import'),
 | |
|     [
 | |
|       resolve('@babel/plugin-transform-runtime'),
 | |
|       {
 | |
|         useESModules: modules === false,
 | |
|         version:
 | |
|           require(`${process.cwd()}/package.json`).dependencies['@babel/runtime'] || '^7.10.4',
 | |
|       },
 | |
|     ],
 | |
|     // resolve('babel-plugin-inline-import-data-uri'),
 | |
|     // resolve('@babel/plugin-transform-member-expression-literals'),
 | |
|     // resolve('@babel/plugin-transform-property-literals'),
 | |
|     // resolve('@babel/plugin-proposal-export-default-from'),
 | |
|     // resolve('@babel/plugin-transform-object-assign'),
 | |
|     // resolve('@babel/plugin-transform-template-literals'),
 | |
|     // resolve('@babel/plugin-proposal-object-rest-spread'),
 | |
|     // resolve('@babel/plugin-proposal-class-properties'),
 | |
|   ];
 | |
|   return {
 | |
|     presets: [
 | |
|       [
 | |
|         resolve('@babel/preset-env'),
 | |
|         {
 | |
|           modules,
 | |
|           targets: isThereHaveBrowserslistConfig()
 | |
|             ? undefined
 | |
|             : {
 | |
|                 browsers: ['last 2 versions', 'Firefox ESR', '> 1%', 'ie >= 11'],
 | |
|               },
 | |
|         },
 | |
|       ],
 | |
|     ],
 | |
|     plugins,
 | |
|     env: {
 | |
|       test: {
 | |
|         plugins: [resolve('babel-plugin-istanbul')],
 | |
|       },
 | |
|     },
 | |
|   };
 | |
| };
 |