3 let path = require('path');
4 let webpack = require('webpack');
6 let cloneDeep = require('lodash/cloneDeep');
7 let assign = require('lodash/assign');
8 let webpackCommon = require('./webpack.common');
10 // copying the common config
11 let webpackProdConfig = cloneDeep(webpackCommon);
12 // setting production settings
13 assign(webpackProdConfig, {
17 path: path.join(__dirname, 'dist'),
18 publicPath: '/onboarding/',
22 modules: [path.join(__dirname, 'node_modules'), path.resolve('.')],
24 'config-json-loader': 'tools/webpack/config-json-loader/index.js'
28 new webpack.DefinePlugin({
30 // This has effect on the react lib size
31 NODE_ENV: JSON.stringify('production')
36 new webpack.optimize.UglifyJsPlugin(),
37 new webpack.LoaderOptionsPlugin({
40 configFile: './.eslintrc',
50 webpackProdConfig.module.rules = webpackProdConfig.module.rules.filter(
52 rule.enforce !== 'pre' ||
53 (rule.enforce === 'pre' && rule.loader !== 'source-map-loader')
55 webpackProdConfig.module.rules.forEach(loader => {
56 if (loader.use && loader.use[0].loader === 'style-loader') {
57 loader.use = loader.use.map(loaderObj =>
58 loaderObj.loader.replace('?sourceMap', '')
62 webpackProdConfig.module.rules.push({
64 use: [{ loader: 'config-json-loader' }]
66 module.exports = webpackProdConfig;