2 * ============LICENSE_START========================================================================
\r
3 * ONAP : ccsdk feature sdnr wt odlux
\r
4 * =================================================================================================
\r
5 * Copyright (C) 2019 highstreet technologies GmbH Intellectual Property. All rights reserved.
\r
6 * =================================================================================================
\r
7 * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
\r
8 * in compliance with the License. You may obtain a copy of the License at
\r
10 * http://www.apache.org/licenses/LICENSE-2.0
\r
12 * Unless required by applicable law or agreed to in writing, software distributed under the License
\r
13 * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
\r
14 * or implied. See the License for the specific language governing permissions and limitations under
\r
16 * ============LICENSE_END==========================================================================
\r
19 * Webpack 4 configuration file
\r
20 * see https://webpack.js.org/configuration/
\r
21 * see https://webpack.js.org/configuration/dev-server/
\r
26 const path = require("path");
\r
27 const webpack = require("webpack");
\r
28 const CopyWebpackPlugin = require("copy-webpack-plugin");
\r
29 const requirejsPlugin = require('requirejs-webpack-plugin');
\r
30 const TerserPlugin = require('terser-webpack-plugin');
\r
32 // const __dirname = (path => path.replace(/^([a-z]\:)/, c => c.toUpperCase()))(process.__dirname());
\r
34 module.exports = (env) => {
\r
35 const distPath = path.resolve(__dirname, env === "release" ? "." : "..", "dist");
\r
36 const frameworkPath = path.resolve(__dirname, env === "release" ? "." : "..", "dist");
\r
39 mode: "none", //disable default behavior
\r
42 context: path.resolve(__dirname, "src"),
\r
48 "./components/objectDump",
\r
49 "./components/material-table",
\r
50 "./components/material-ui",
\r
51 "./utilities/elasticSearch",
\r
55 devtool: env === "release" ? false : "source-map",
\r
58 extensions: [".ts", ".tsx", ".js", ".jsx"]
\r
63 library: "[name]", // related to webpack.DllPlugin::name
\r
64 libraryTarget: "umd2",
\r
65 filename: "[name].js",
\r
66 chunkFilename: "[name].js"
\r
72 exclude: /node_modules/,
\r
74 loader: "babel-loader"
\r
80 exclude: /node_modules/,
\r
82 loader: "babel-loader"
\r
85 test: /\.(png|gif|jpg|svg)$/,
\r
87 loader: 'url-loader',
\r
90 name: './images/[hash].[ext]'
\r
97 noEmitOnErrors: true,
\r
98 namedModules: env !== "release",
\r
99 minimize: env === "release",
\r
100 minimizer: env !== "release" ? [] : [new TerserPlugin({
\r
103 reserved: ["./app.tsx"]
\r
105 warnings: false, // false, true, "verbose"
\r
107 drop_console: true,
\r
108 drop_debugger: true,
\r
115 new CopyWebpackPlugin([{
\r
116 from: '../../node_modules/requirejs/require.js',
\r
119 from: './favicon.ico',
\r
122 from: env === "release" ? './index.html' : 'index.dev.html',
\r
125 new requirejsPlugin({
\r
127 filename: 'config.js',
\r
130 processOutput: function (assets) {
\r
131 let mainConfig = JSON.stringify(assets, null, 2);
\r
132 mainConfig = mainConfig.slice(0,-1); // remove closing bracket from string
\r
133 const entireConfig = mainConfig.concat(", waitSeconds: 30}"); // add waitSeconds to config
\r
134 return 'require.config(' + entireConfig + ')';
\r
137 // new HtmlWebpackPlugin({
\r
138 // filename: "index.html",
\r
139 // template: "./index.html",
\r
142 // new HtmlWebpackIncludeAssetsPlugin({
\r
143 // assets: ['vendor.js'],
\r
146 new webpack.DllReferencePlugin({
\r
147 context: path.resolve(__dirname, "src"),
\r
148 manifest: require(path.resolve(frameworkPath, "vendor-manifest.json")),
\r
151 new webpack.DllPlugin({
\r
152 context: path.resolve(__dirname, "src"),
\r
154 path: path.resolve(distPath, "[name]-manifest.json")
\r
156 ...(env === "release") ? [
\r
157 new webpack.DefinePlugin({
\r
159 NODE_ENV: "'production'",
\r
160 VERSION: JSON.stringify(require("./package.json").version)
\r
164 new webpack.HotModuleReplacementPlugin(),
\r
165 new webpack.DefinePlugin({
\r
167 NODE_ENV: "'development'",
\r
168 VERSION: JSON.stringify(require("./package.json").version)
\r
171 new webpack.WatchIgnorePlugin([
\r
175 new CopyWebpackPlugin([{
\r
176 from: './assets/version.json',
\r
177 to: './version.json'
\r
183 public: "http://10.20.6.29:3100",
\r
184 contentBase: distPath,
\r
188 "Access-Control-Allow-Origin": "*"
\r
192 disableHostCheck: true,
\r
193 historyApiFallback: true,
\r
202 target: "http://10.20.6.29:48181",
\r
206 target: "http://10.20.6.29:48181",
\r
210 target: "http://10.20.6.29:48181",
\r
214 target: "http://10.20.6.29:48181",
\r
218 target: "http://10.20.6.29:48181",
\r
222 target: "http://10.20.6.29:48181",
\r
224 changeOrigin: true,
\r