summaryrefslogtreecommitdiffstats
path: root/openecomp-ui/webpack.production.js
blob: 22da77e6ed33527e49c806ac95b540d0af3f7bc8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
'use strict';

let path = require('path');
let webpack = require('webpack');

let cloneDeep = require('lodash/cloneDeep');
let assign = require('lodash/assign');
let webpackCommon = require('./webpack.common');

// copying the common config
let webpackProdConfig = cloneDeep(webpackCommon);
// setting production settings
assign(webpackProdConfig, {
    devtool: undefined,
    cache: true,
    output: {
        path: path.join(__dirname, 'dist'),
        publicPath: '/onboarding/',
        filename: '[name].js'
    },
    resolveLoader: {
        modules: [path.join(__dirname, 'node_modules'), path.resolve('.')],
        alias: {
            'config-json-loader': 'tools/webpack/config-json-loader/index.js'
        }
    },
    plugins: [
        new webpack.DefinePlugin({
            'process.env': {
                // This has effect on the react lib size
                NODE_ENV: JSON.stringify('production')
            },
            DEBUG: false,
            DEV: false
        }),
        new webpack.optimize.UglifyJsPlugin(),
        new webpack.LoaderOptionsPlugin({
            options: {
                eslint: {
                    configFile: './.eslintrc',
                    emitError: true,
                    emitWarning: true,
                    failOnError: true
                }
            }
        })
    ]
});

webpackProdConfig.module.rules = webpackProdConfig.module.rules.filter(
    rule =>
        rule.enforce !== 'pre' ||
        (rule.enforce === 'pre' && rule.loader !== 'source-map-loader')
);
webpackProdConfig.module.rules.forEach(loader => {
    if (loader.use && loader.use[0].loader === 'style-loader') {
        loader.use = loader.use.map(loaderObj =>
            loaderObj.loader.replace('?sourceMap', '')
        );
    }
});
webpackProdConfig.module.rules.push({
    test: /config.json$/,
    use: [{ loader: 'config-json-loader' }]
});
module.exports = webpackProdConfig;