integration-examples/loop-test-plugin/webapp/babel.config.js

43 lines
1.0 KiB
JavaScript

// eslint-disable-next-line no-process-env
const mode = process.env.WEBPACK_SERVE ? 'development' : 'production';
const config = {
presets: [
['@babel/preset-env', {
targets: "> 0.25%, not dead",
modules: false,
useBuiltIns: "entry",
corejs: "3.32",
debug: false,
// useBuiltIns: 'usage',
shippedProposals: true,
}],
['@babel/preset-react', {
useBuiltIns: true,
}],
['@babel/typescript', {
allExtensions: true,
isTSX: true,
}],
],
plugins: [
'@babel/plugin-proposal-class-properties',
'@babel/plugin-syntax-dynamic-import',
'@babel/proposal-object-rest-spread',
'@babel/plugin-proposal-optional-chaining',
'babel-plugin-typescript-to-proptypes',
mode !== 'production' && require.resolve('react-refresh/babel'),
].filter(Boolean),
};
// Jest needs module transformation
config.env = {
test: {
presets: config.presets,
plugins: config.plugins,
},
};
config.env.test.presets[0][1].modules = 'auto';
module.exports = config;