const path = require('path'); const TerserPlugin = require('terser-webpack-plugin'); module.exports = (env = {}) => ( { mode: 'production', entry: { app: ['./src/index.js'] }, output: { library: 'ReactJsonTree', libraryTarget: 'umd', path: path.resolve(__dirname, 'umd'), filename: env.minimize ? 'react-json-tree.min.js' : 'react-json-tree.js' }, module: { rules: [ { test: /\.js$/, loader: 'babel-loader', exclude: /node_modules/ } ] }, externals: { react: { root: 'React', commonjs2: 'react', commonjs: 'react', amd: 'react' }, 'react-dom': { root: 'ReactDOM', commonjs2: 'react-dom', commonjs: 'react-dom', amd: 'react-dom' } }, optimization: { minimize: !!env.minimize, minimizer: [ new TerserPlugin({ terserOptions: { safari10: true } }) ] }, performance: { hints: false } } );