@ant-design/tools
Version:
tools for ant design
25 lines • 1.18 kB
JavaScript
import fs from 'fs-extra';
import { resolve, isThereHaveBrowserslistConfig } from "./utils/projectHelper";
function getBabelCommonConfig(modules, options = {}) {
const plugins = [[resolve('@babel/plugin-transform-typescript'), {
isTSX: true
}], [resolve('@babel/plugin-transform-runtime'), {
useESModules: modules === false,
version: fs.readJSONSync(`${process.cwd()}/package.json`).dependencies['@babel/runtime'] || '^7.10.4'
}], resolve('@babel/plugin-transform-spread'), resolve('@babel/plugin-proposal-class-properties'), resolve('@babel/plugin-transform-classes'), resolve('babel-plugin-transform-dev-warning'), resolve('@babel/plugin-transform-private-methods')];
if (options.enabledReactCompiler === true) {
plugins.unshift([resolve('babel-plugin-react-compiler'), {
target: '18' // 最低支持的版本是 React 18
}]);
}
return {
presets: [resolve('@babel/preset-react'), [resolve('@babel/preset-env'), {
modules,
targets: isThereHaveBrowserslistConfig() ? undefined : {
browsers: ['last 2 versions', 'Firefox ESR', '> 1%', 'ie >= 11']
}
}]],
plugins
};
}
export default getBabelCommonConfig;