mirror of
https://github.com/zebrajr/react.git
synced 2025-12-07 00:20:28 +01:00
DevTools shared Babel config previously supported IE 11 to target Hermes (for the standalone backend that gets embedded within React Native apps). This targeting resulted in less optimal code for other DevTools targets though which did not need to support IE 11. This PR updates the shared config to remove IE 11 support by default, and only enables it for the standalone backend target.
52 lines
1.5 KiB
JavaScript
52 lines
1.5 KiB
JavaScript
const chromeManifest = require('../react-devtools-extensions/chrome/manifest.json');
|
|
const firefoxManifest = require('../react-devtools-extensions/firefox/manifest.json');
|
|
|
|
const minChromeVersion = parseInt(chromeManifest.minimum_chrome_version, 10);
|
|
const minFirefoxVersion = parseInt(
|
|
firefoxManifest.applications.gecko.strict_min_version,
|
|
10,
|
|
);
|
|
validateVersion(minChromeVersion);
|
|
validateVersion(minFirefoxVersion);
|
|
|
|
function validateVersion(version) {
|
|
if (version > 0 && version < 200) {
|
|
return;
|
|
}
|
|
throw new Error('Suspicious browser version in manifest: ' + version);
|
|
}
|
|
|
|
module.exports = api => {
|
|
const isTest = api.env('test');
|
|
const targets = {};
|
|
if (isTest) {
|
|
targets.node = 'current';
|
|
} else {
|
|
targets.chrome = minChromeVersion.toString();
|
|
targets.firefox = minFirefoxVersion.toString();
|
|
|
|
let additionalTargets = process.env.BABEL_CONFIG_ADDITIONAL_TARGETS;
|
|
if (additionalTargets) {
|
|
additionalTargets = JSON.parse(additionalTargets);
|
|
for (const target in additionalTargets) {
|
|
targets[target] = additionalTargets[target];
|
|
}
|
|
}
|
|
}
|
|
const plugins = [
|
|
['@babel/plugin-transform-flow-strip-types'],
|
|
['@babel/plugin-proposal-class-properties', {loose: false}],
|
|
];
|
|
if (process.env.NODE_ENV !== 'production') {
|
|
plugins.push(['@babel/plugin-transform-react-jsx-source']);
|
|
}
|
|
return {
|
|
plugins,
|
|
presets: [
|
|
['@babel/preset-env', {targets}],
|
|
'@babel/preset-react',
|
|
'@babel/preset-flow',
|
|
],
|
|
};
|
|
};
|