diff --git a/.babelrc b/.babelrc deleted file mode 100644 index 85c9fadb2..000000000 --- a/.babelrc +++ /dev/null @@ -1,40 +0,0 @@ -{ - "ignore": ["node_modules/**/*"], - "presets": ["@babel/env", "next", "@babel/flow"], - "plugins": [ - [ - "babel-plugin-styled-components", - { - "ssr": true, - "displayName": true - } - ] - ], - "env": { - "development": { - "plugins": ["@babel/plugin-transform-runtime"] - }, - "production": { - "presets": [ - [ - "@babel/env", - { - "modules": false - } - ] - ] - }, - "test": { - "presets": [ - [ - "next", - { - "preset-env": { - "modules": "commonjs" - } - } - ] - ] - } - } -} diff --git a/.babelrc.js b/.babelrc.js new file mode 100644 index 000000000..729e5f2f2 --- /dev/null +++ b/.babelrc.js @@ -0,0 +1,46 @@ +module.exports = api => { + let dev = false; + let modules = 'commonjs'; + + switch (api.env()) { + case 'docs': + case 'test': + dev = true; + break; + case 'dist-dev': + dev = true; + modules = false; + break; + case 'dist-prod': + case 'esm': + modules = false; + break; + case 'build': + default: + break; + } + + return { + plugins: [ + [ + 'babel-plugin-styled-components', + { + ssr: true, + displayName: true, + }, + ], + ], + presets: [ + '@babel/preset-flow', + [ + 'next', + { + 'preset-env': { + modules: 'commonjs', + }, + }, + ], + ['@react-bootstrap', { dev, modules, removePropTypes: !dev }], + ], + }; +}; diff --git a/config/dist.webpack.config.js b/config/dist.webpack.config.js new file mode 100644 index 000000000..b2100687c --- /dev/null +++ b/config/dist.webpack.config.js @@ -0,0 +1,41 @@ +module.exports = (distRoot, optimize) => ({ + mode: 'production', + optimization: { + minimize: !!optimize, + }, + entry: './lib/index.js', + output: { + path: distRoot, + filename: optimize ? 'xt-component.min.js' : 'xt-component.js', + library: 'xtComponent', + libraryTarget: 'umd', + }, + module: { + rules: [ + { + test: /\.js$/, + use: { + loader: 'babel-loader', + options: { + cacheDirectory: true, + envName: `dist-${optimize ? 'prod' : 'dev'}`, + }, + }, + }, + ], + }, + externals: { + react: { + root: 'React', + commonjs2: 'react', + commonjs: 'react', + amd: 'react', + }, + 'react-dom': { + root: 'ReactDOM', + commonjs2: 'react-dom', + commonjs: 'react-dom', + amd: 'react-dom', + }, + }, +}); diff --git a/lib/components/molecules/Form/FieldInput/tests/__snapshots__/FieldInput.test.js.snap b/lib/components/molecules/Form/FieldInput/tests/__snapshots__/FieldInput.test.js.snap index b86db5051..19293eedb 100644 --- a/lib/components/molecules/Form/FieldInput/tests/__snapshots__/FieldInput.test.js.snap +++ b/lib/components/molecules/Form/FieldInput/tests/__snapshots__/FieldInput.test.js.snap @@ -7,11 +7,11 @@ exports[`FieldInput Component should render correctly 1`] = `