mirror of
https://github.com/zoriya/react-native-web.git
synced 2026-05-12 19:06:35 +00:00
57 lines
1.4 KiB
JavaScript
57 lines
1.4 KiB
JavaScript
const createConfig = ({ modules }) => {
|
|
const plugins = [
|
|
'@babel/plugin-transform-flow-strip-types',
|
|
['@babel/plugin-proposal-class-properties', { loose: true }],
|
|
['@babel/plugin-proposal-object-rest-spread', { useBuiltIns: true }],
|
|
'@babel/plugin-proposal-nullish-coalescing-operator',
|
|
[
|
|
'@babel/plugin-transform-runtime',
|
|
{
|
|
version: '7.18.6'
|
|
}
|
|
]
|
|
].concat(modules ? ['babel-plugin-add-module-exports'] : []);
|
|
|
|
return {
|
|
assumptions: {
|
|
iterableIsArray: true
|
|
},
|
|
comments: true,
|
|
presets: [
|
|
[
|
|
'@babel/preset-env',
|
|
{
|
|
loose: true,
|
|
modules,
|
|
exclude: ['transform-typeof-symbol'],
|
|
targets: {
|
|
browsers: [
|
|
'chrome 49',
|
|
// https://www.mozilla.org/en-US/firefox/all/#product-desktop-esr
|
|
'firefox 91',
|
|
'ios_saf 10',
|
|
'safari 10',
|
|
// https://docs.microsoft.com/en-us/DeployEdge/microsoft-edge-support-lifecycle
|
|
'edge 94',
|
|
'opera 36'
|
|
]
|
|
}
|
|
}
|
|
],
|
|
'@babel/preset-react',
|
|
'@babel/preset-flow'
|
|
],
|
|
plugins: plugins
|
|
};
|
|
};
|
|
|
|
module.exports = function (api) {
|
|
if (api) {
|
|
api.cache(true);
|
|
}
|
|
|
|
return process.env.BABEL_ENV === 'commonjs' || process.env.NODE_ENV === 'test'
|
|
? createConfig({ modules: 'commonjs' })
|
|
: createConfig({ modules: false });
|
|
};
|