const { resolve } = 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-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'), ]; plugins.push([ resolve('@babel/plugin-transform-runtime'), { helpers: false, }, ]); return { presets: [ [ resolve('@babel/preset-env'), { modules, targets: { browsers: [ 'last 2 versions', 'Firefox ESR', '> 1%', 'ie >= 11', 'iOS >= 8', 'Android >= 4', ], }, }, ], ], plugins, env: { test: { plugins: [resolve('babel-plugin-istanbul')], }, }, }; };