diff options
author | Yamagishi Kazutoshi <ykzts@desire.sh> | 2018-09-15 00:59:48 +0900 |
---|---|---|
committer | Eugen Rochko <eugen@zeonfederated.com> | 2018-09-14 17:59:48 +0200 |
commit | 0ddbccf7e6303f3b524628e210bdba5654d5c421 (patch) | |
tree | 15f8257614fdb9c7a6bc3b74bdbd3688525f493c /babel.config.js | |
parent | 64a5561b5afe0cd125498a245f8b27ea3d4d133c (diff) |
Upgrade Babel to version 7.0.0 (#5925)
Diffstat (limited to 'babel.config.js')
-rw-r--r-- | babel.config.js | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/babel.config.js b/babel.config.js new file mode 100644 index 000000000..a506ad8ce --- /dev/null +++ b/babel.config.js @@ -0,0 +1,65 @@ +module.exports = (api) => { + const env = api.env(); + + const envOptions = { + debug: false, + loose: true, + modules: false, + }; + + const config = { + presets: [ + '@babel/react', + ['@babel/env', envOptions], + ], + plugins: [ + '@babel/syntax-dynamic-import', + ['@babel/proposal-object-rest-spread', { useBuiltIns: true }], + ['@babel/proposal-decorators', { legacy: true }], + '@babel/proposal-class-properties', + ['react-intl', { messagesDir: './build/messages' }], + 'preval', + ], + }; + + switch (env) { + case 'production': + envOptions.debug = false; + config.plugins.push(...[ + 'lodash', + [ + 'transform-react-remove-prop-types', + { + mode: 'remove', + removeImport: true, + additionalLibraries: [ + 'react-immutable-proptypes', + ], + }, + ], + '@babel/transform-react-inline-elements', + [ + '@babel/transform-runtime', + { + helpers: true, + regenerator: false, + useESModules: true, + }, + ], + ]); + break; + case 'development': + envOptions.debug = true; + config.plugins.push(...[ + '@babel/transform-react-jsx-source', + '@babel/transform-react-jsx-self', + ]); + break; + case 'test': + envOptions.modules = 'commonjs'; + break; + } + + return config; +}; + |