summaryrefslogtreecommitdiffstats
path: root/catalog-ui/webpack.production.js
blob: db33a94f3ea2865a671ef9e127da4e5d585fb1f3 (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
67
68
69
70
'use strict';

const path = require('path');
const merge = require('webpack-merge');
const webpack = require('webpack');
const ServerConfig = require('./webpack.server');
const webpackCommonConfig = require('./webpack.common');
const {GlobCopyWebpackPlugin, BaseHrefWebpackPlugin} = require('@angular/cli/plugins/webpack');
const CopyWebpackPlugin = require('copy-webpack-plugin');

var currentTime = new Date().getTime();

const params = {
    // entryPoints: [
    //     '/sdc1/scripts/inline',
    //     '/sdc1/scripts/polyfills',
    //     '/sdc1/scripts/vendor',
    //     '/sdc1/scripts/main',
    //     '/sdc1/scripts/sw-register',
    //     '/sdc1/scripts/scripts',
    //     '/sdc1/scripts/styles'
    // ]
};

const webpackProdConfig = {
    module: {
        rules: [
            {test: /\.(eot|svg)$/, loader: "file-loader?name=/scripts/fonts/[name].[hash:20].[ext]"},
            {
                test: /\.(jpg|png|gif|otf|ttf|woff|woff2|cur|ani)$/,
                loader: "url-loader?name=/scripts/images/[name].[hash:20].[ext]&limit=10000"
            }
        ]
    },
    output: {
        path: path.join(process.cwd(), "dist"),
        filename: "[name]." + currentTime + ".bundle.js",
        chunkFilename: "[id].chunk.js",
        publicPath: "/sdc1"
    },
    plugins: [
        new webpack.DefinePlugin({
            __DEBUG__: JSON.stringify(false),
            __ENV__: JSON.stringify('prod')
        }),

        new CopyWebpackPlugin([
            {
                from: './src/index.html', transform: function (content, path) {
                    content = (content + '').replace(/\.bundle/g, '.' + currentTime + '.bundle');
                    return content;
                }
            }
        ]),
        new webpack.optimize.UglifyJsPlugin({
            beautify: false,
            mangle: {
                screw_ie8: true,
                keep_fnames: true
            },
            compress: {
                warnings: false,
                screw_ie8: true
            },
            comments: false
        })
    ]
};

module.exports = merge(webpackProdConfig, webpackCommonConfig(params));