|
|
|
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')],
|
|
|
|
},
|
|
|
|
},
|
|
|
|
};
|
|
|
|
};
|