summaryrefslogtreecommitdiffstats
path: root/alarm-analysis/src/main/webapp/config/webpack.common.js
blob: 642e166423af01b3bfc69bfa07a8f000c09fd818 (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
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
/* Copyright 2017 ZTE Corporation.
 *
 *Licensed under the Apache License, Version 2.0 (the "License");
 *you may not use this file except in compliance with the License.
 *You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
const ContextReplacementPlugin = require('webpack/lib/ContextReplacementPlugin');
const CheckerPlugin = require('awesome-typescript-loader').CheckerPlugin;
const CopyWebpackPlugin = require('copy-webpack-plugin');
const HtmlWebpackPlugin = require('html-webpack-plugin');
const LoaderOptionsPlugin = require('webpack/lib/LoaderOptionsPlugin');

const webpack = require('webpack');
const helpers = require('./helpers');
const path = require('path');





module.exports = {
    entry: {
        'main': './alarm/main.browser.ts',
        'vendor': './alarm/vendor.ts',
        'polyfills': './alarm/polyfills.browser.ts'
    },
    resolve: {

        extensions: ['.js', '.ts', '.json'],
    },
    module: {

        rules: [
            {
                test: /\.ts$/,
                use: [

                    {
                        loader: 'awesome-typescript-loader',
                        options: {
                        }
                    },
                    {
                        loader: 'angular2-template-loader'
                    }
                ],
                exclude: [/\.(spec|e2e)\.ts$/]
            },

            {
                test: /\.json$/,
                use: 'json-loader'
            },
            {
                test: /\.css$/,
                use: ['to-string-loader', 'css-loader?sourceMap'],
                include: helpers.root('alarm', 'app'),
                exclude: [helpers.root('alarm/assets'), helpers.root('public')]
            },
            {
                test: /\.html$/,
                use: 'raw-loader',
                include: [helpers.root('alarm/app')],
                exclude: [helpers.root('alarm/index.html')]
            },


            {
                test: /\.(png|jpe?g|gif|ico|svg)$/,
                include: [helpers.root('public')
                ],
                use: 'file-loader?name=assets/images/[name].[hash].[ext]'
            },


            {
                test: /\.(eot|woff2?|svg|ttf)([\?]?.*)$/,
                include: [helpers.root('public', 'thirdparty')
                ],
                use: 'file-loader?name=assets/fonts/[name].[hash].[ext]'
            }

        ],

    },

    plugins: [

        new CheckerPlugin(),

        new ContextReplacementPlugin(
            /angular(\\|\/)core(\\|\/)alarm(\\|\/)linker/,
            helpers.root('alarm'),
            {
            }
        ),

        new HtmlWebpackPlugin({
            template: 'alarm/index.html',
        }),

        new webpack.optimize.CommonsChunkPlugin({
            name: ['main', 'vendor', 'polyfills']
        }),

    ]
};