From e1c0f450ef12b45453a26212440a0af4c2e833b2 Mon Sep 17 00:00:00 2001 From: Daniel Spitzer Date: Sun, 22 Apr 2018 11:58:36 +0200 Subject: [PATCH] =?UTF-8?q?Set=20Babel=E2=80=99s=20IE=20target=20from=209?= =?UTF-8?q?=20to=2011?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- scripts/build.js | 4 ++++ scripts/patch/babelIE11.js | 14 ++++++++++++++ scripts/start.js | 4 ++++ 3 files changed, 22 insertions(+) create mode 100644 scripts/patch/babelIE11.js diff --git a/scripts/build.js b/scripts/build.js index af657ee..15301d1 100644 --- a/scripts/build.js +++ b/scripts/build.js @@ -3,6 +3,10 @@ process.env.BABEL_ENV = 'production'; process.env.NODE_ENV = 'production'; +const babelIE11 = require('./patch/babelIE11'); +const babelConfig = require('babel-preset-react-app'); +babelIE11(babelConfig); + const webpackPreact = require('./patch/webpackPreact'); const webpackConfig = require('react-scripts/config/webpack.config.prod'); webpackPreact(webpackConfig); diff --git a/scripts/patch/babelIE11.js b/scripts/patch/babelIE11.js new file mode 100644 index 0000000..94b2197 --- /dev/null +++ b/scripts/patch/babelIE11.js @@ -0,0 +1,14 @@ +// Hack babel to build for IE11 instead of IE9 +module.exports = babelConfig => { + const presets = babelConfig.presets; + presets.forEach((preset, i) => { + if (!Array.isArray(preset)) { + return; + } + preset.forEach((p, j) => { + if (p.targets && p.targets.ie) { + presets[i][j].ie = 11; + } + }); + }); +}; diff --git a/scripts/start.js b/scripts/start.js index 75f5258..2ab95aa 100644 --- a/scripts/start.js +++ b/scripts/start.js @@ -3,6 +3,10 @@ process.env.BABEL_ENV = 'development'; process.env.NODE_ENV = 'development'; +const babelIE11 = require('./patch/babelIE11'); +const babelConfig = require('babel-preset-react-app'); +babelIE11(babelConfig); + const webpackPreact = require('./patch/webpackPreact'); const webpackConfig = require('react-scripts/config/webpack.config.dev'); webpackPreact(webpackConfig);