diff --git a/config/webpack/loaders/babel.js b/config/webpack/loaders/babel.js index 1416191c0..e17d2fa70 100644 --- a/config/webpack/loaders/babel.js +++ b/config/webpack/loaders/babel.js @@ -4,11 +4,7 @@ const env = process.env.NODE_ENV || 'development'; module.exports = { test: /\.js$/, - // include react-intl because transform-react-remove-prop-types needs to apply to it - exclude: { - test: /node_modules/, - exclude: /react-intl[\/\\](?!locale-data)/, - }, + exclude: /node_modules/, loader: 'babel-loader', options: { forceEnv: env, diff --git a/config/webpack/loaders/babel_external.js b/config/webpack/loaders/babel_external.js new file mode 100644 index 000000000..39e74ed90 --- /dev/null +++ b/config/webpack/loaders/babel_external.js @@ -0,0 +1,21 @@ +const { resolve } = require('path'); + +const env = process.env.NODE_ENV || 'development'; + +if (env === 'development') { + module.exports = {}; +} else { + // babel options to apply only to external libraries, e.g. remove-prop-types + module.exports = { + test: /\.js$/, + include: /node_modules/, + loader: 'babel-loader', + options: { + babelrc: false, + plugins: [ + 'transform-react-remove-prop-types', + ], + cacheDirectory: env === 'development' ? false : resolve(__dirname, '..', '..', '..', 'tmp', 'cache', 'babel-loader-external'), + }, + }; +}