From 1a868116614dd9996c78e69941b537e9da19460b Mon Sep 17 00:00:00 2001 From: Aijana Schumann Date: Tue, 1 Feb 2022 13:18:42 +0100 Subject: Update ODLUX Updated to Material-ui 5, updated dashboard view, removed NetworkMap, LinkCalculator and LineOfSightApp, small bugfixes Issue-ID: CCSDK-3580 Signed-off-by: Aijana Schumann Change-Id: Id0fc148673e23a755cafc2be1c489248c38ff47c --- sdnr/wt/odlux/framework/webpack.config.js | 530 +++++++++++++++--------------- 1 file changed, 265 insertions(+), 265 deletions(-) (limited to 'sdnr/wt/odlux/framework/webpack.config.js') diff --git a/sdnr/wt/odlux/framework/webpack.config.js b/sdnr/wt/odlux/framework/webpack.config.js index 95b5f5ed7..b7bbacb33 100644 --- a/sdnr/wt/odlux/framework/webpack.config.js +++ b/sdnr/wt/odlux/framework/webpack.config.js @@ -1,265 +1,265 @@ -/** - * ============LICENSE_START======================================================================== - * ONAP : ccsdk feature sdnr wt odlux - * ================================================================================================= - * Copyright (C) 2019 highstreet technologies GmbH Intellectual Property. All rights reserved. - * ================================================================================================= - * 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. - * ============LICENSE_END========================================================================== - */ -/** - * Webpack 4 configuration file - * see https://webpack.js.org/configuration/ - * see https://webpack.js.org/configuration/dev-server/ - */ - -"use strict"; - -const path = require("path"); -const webpack = require("webpack"); -const CopyWebpackPlugin = require("copy-webpack-plugin"); -const requirejsPlugin = require('requirejs-webpack-plugin'); -const TerserPlugin = require('terser-webpack-plugin'); - -// const __dirname = (path => path.replace(/^([a-z]\:)/, c => c.toUpperCase()))(process.__dirname()); - -module.exports = (env) => { - const distPath = path.resolve(__dirname, env === "release" ? "." : "..", "dist"); - const frameworkPath = path.resolve(__dirname, env === "release" ? "." : "..", "dist"); - return [{ - name: "Client", - mode: "none", //disable default behavior - target: "web", - - context: path.resolve(__dirname, "src"), - - entry: { - app: [ - "./run.ts", - "./app.tsx", - "./services", - "./components/objectDump", - "./components/material-table", - "./components/material-ui", - "./utilities/elasticSearch", - "./models"], - }, - - devtool: env === "release" ? false : "source-map", - - resolve: { - extensions: [".ts", ".tsx", ".js", ".jsx"] - }, - - output: { - path: distPath, - library: "[name]", // related to webpack.DllPlugin::name - libraryTarget: "umd2", - filename: "[name].js", - chunkFilename: "[name].js" - }, - - module: { - rules: [{ - test: /\.tsx?$/, - exclude: /node_modules/, - use: [{ - loader: "babel-loader" - }, { - loader: "ts-loader" - }] - }, { - test: /\.jsx?$/, - exclude: /node_modules/, - use: [{ - loader: "babel-loader" - }] - }, - { - //don't minify images - test: /\.(png|gif|jpg|svg)$/, - use: [{ - loader: 'url-loader', - options: { - limit: 10, - name: './images/[name].[ext]' - } - }] - } - ] - }, - - optimization: { - noEmitOnErrors: true, - namedModules: env !== "release", - minimize: env === "release", - minimizer: env !== "release" ? [] : [new TerserPlugin({ - terserOptions: { - mangle: { - reserved: ["./app.tsx"] - }, - warnings: false, // false, true, "verbose" - compress: { - drop_console: true, - drop_debugger: true, - } - } - })], - }, - - plugins: [ - new CopyWebpackPlugin([{ - from: '../../node_modules/requirejs/require.js', - to: '.' - }, { - from: './favicon.ico', - to: '.' - }, { - from: env === "release" ? './index.html' : 'index.dev.html', - to: './index.html' - }]), - new requirejsPlugin({ - path: distPath, - filename: 'config.js', - baseUrl: '', - pathUrl: '', - processOutput: function (assets) { - let mainConfig = JSON.stringify(assets, null, 2); - mainConfig = mainConfig.slice(0,-1); // remove closing bracket from string - const entireConfig = mainConfig.concat(", waitSeconds: 30}"); // add waitSeconds to config - return 'require.config(' + entireConfig + ')'; - } - }), - // new HtmlWebpackPlugin({ - // filename: "index.html", - // template: "./index.html", - // inject: "head" - // }), - // new HtmlWebpackIncludeAssetsPlugin({ - // assets: ['vendor.js'], - // append: false - // }), - new webpack.DllReferencePlugin({ - context: path.resolve(__dirname, "src"), - manifest: require(path.resolve(frameworkPath, "vendor-manifest.json")), - sourceType: "umd2" - }), - new webpack.DllPlugin({ - context: path.resolve(__dirname, "src"), - name: "[name]", - path: path.resolve(distPath, "[name]-manifest.json") - }), - ...(env === "release") ? [ - new webpack.DefinePlugin({ - "process.env": { - NODE_ENV: "'production'", - VERSION: JSON.stringify(require("./package.json").version) - } - }), - ] : [ - new webpack.HotModuleReplacementPlugin(), - new webpack.DefinePlugin({ - "process.env": { - NODE_ENV: "'development'", - VERSION: JSON.stringify(require("./package.json").version) - } - }), - new webpack.WatchIgnorePlugin([ - /css\.d\.ts$/, - /less\.d\.ts$/ - ]), - new CopyWebpackPlugin([{ - from: './assets/version.json', - to: './version.json' - }]) - ] - ], - - devServer: { - public: "http://localhost:3100", - contentBase: distPath, - - compress: true, - headers: { - "Access-Control-Allow-Origin": "*" - }, - host: "0.0.0.0", - port: 3100, - disableHostCheck: true, - historyApiFallback: true, - inline: true, - hot: false, - quiet: false, - stats: { - colors: true - }, - proxy: { - "/about": { - // target: "http://10.20.6.29:48181", - target: "http://sdnr:8181", - secure: false - }, - "/yang-schema/": { - target: "http://sdnr:8181", - secure: false - }, - "/oauth/": { - // target: "https://10.20.35.188:30205", - target: "http://sdnr:8181", - secure: false - }, - "/oauth2/": { - // target: "https://10.20.35.188:30205", - target: "http://sdnr:8181", - secure: false - }, - "/database/": { - target: "http://sdnr:8181", - secure: false - }, - "/restconf/": { - target: "http://sdnr:8181", - secure: false - }, - "/rests/": { - target: "http://sdnr:8181", - secure: false - }, - "/help/": { - target: "http://sdnr:8181", - secure: false - }, - "/about/": { - target: "http://sdnr:8181", - secure: false - }, - "/tree/": { - target: "http://sdnr:8181", - secure: false - }, - "/websocket": { - target: "http://sdnr:8181", - ws: true, - changeOrigin: true, - secure: false - }, - "/apidoc": { - target: "http://sdnr:8181", - ws: true, - changeOrigin: true, - secure: false - } - } - } - }]; -} - - +/** + * ============LICENSE_START======================================================================== + * ONAP : ccsdk feature sdnr wt odlux + * ================================================================================================= + * Copyright (C) 2019 highstreet technologies GmbH Intellectual Property. All rights reserved. + * ================================================================================================= + * 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. + * ============LICENSE_END========================================================================== + */ +/** + * Webpack 4 configuration file + * see https://webpack.js.org/configuration/ + * see https://webpack.js.org/configuration/dev-server/ + */ + +"use strict"; + +const path = require("path"); +const webpack = require("webpack"); +const CopyWebpackPlugin = require("copy-webpack-plugin"); +const requirejsPlugin = require('requirejs-webpack-plugin'); +const TerserPlugin = require('terser-webpack-plugin'); + +// const __dirname = (path => path.replace(/^([a-z]\:)/, c => c.toUpperCase()))(process.__dirname()); + +module.exports = (env) => { + const distPath = path.resolve(__dirname, env === "release" ? "." : "..", "dist"); + const frameworkPath = path.resolve(__dirname, env === "release" ? "." : "..", "dist"); + return [{ + name: "Client", + mode: "none", //disable default behavior + target: "web", + + context: path.resolve(__dirname, "src"), + + entry: { + app: [ + "./run.ts", + "./app.tsx", + "./services", + "./components/objectDump", + "./components/material-table", + "./components/material-ui", + "./utilities/elasticSearch", + "./models"], + }, + + devtool: env === "release" ? false : "source-map", + + resolve: { + extensions: [".ts", ".tsx", ".js", ".jsx"] + }, + + output: { + path: distPath, + library: "[name]", // related to webpack.DllPlugin::name + libraryTarget: "umd2", + filename: "[name].js", + chunkFilename: "[name].js" + }, + + module: { + rules: [{ + test: /\.tsx?$/, + exclude: /node_modules/, + use: [{ + loader: "babel-loader" + }, { + loader: "ts-loader" + }] + }, { + test: /\.jsx?$/, + exclude: /node_modules/, + use: [{ + loader: "babel-loader" + }] + }, + { + //don't minify images + test: /\.(png|gif|jpg|svg)$/, + use: [{ + loader: 'url-loader', + options: { + limit: 10, + name: './images/[name].[ext]' + } + }] + } + ] + }, + + optimization: { + noEmitOnErrors: true, + namedModules: env !== "release", + minimize: env === "release", + minimizer: env !== "release" ? [] : [new TerserPlugin({ + terserOptions: { + mangle: { + reserved: ["./app.tsx"] + }, + warnings: false, // false, true, "verbose" + compress: { + drop_console: true, + drop_debugger: true, + } + } + })], + }, + + plugins: [ + new CopyWebpackPlugin([{ + from: '../../node_modules/requirejs/require.js', + to: '.' + }, { + from: './favicon.ico', + to: '.' + }, { + from: env === "release" ? './index.html' : 'index.dev.html', + to: './index.html' + }]), + new requirejsPlugin({ + path: distPath, + filename: 'config.js', + baseUrl: '', + pathUrl: '', + processOutput: function (assets) { + let mainConfig = JSON.stringify(assets, null, 2); + mainConfig = mainConfig.slice(0,-1); // remove closing bracket from string + const entireConfig = mainConfig.concat(", waitSeconds: 30}"); // add waitSeconds to config + return 'require.config(' + entireConfig + ')'; + } + }), + // new HtmlWebpackPlugin({ + // filename: "index.html", + // template: "./index.html", + // inject: "head" + // }), + // new HtmlWebpackIncludeAssetsPlugin({ + // assets: ['vendor.js'], + // append: false + // }), + new webpack.DllReferencePlugin({ + context: path.resolve(__dirname, "src"), + manifest: require(path.resolve(frameworkPath, "vendor-manifest.json")), + sourceType: "umd2" + }), + new webpack.DllPlugin({ + context: path.resolve(__dirname, "src"), + name: "[name]", + path: path.resolve(distPath, "[name]-manifest.json") + }), + ...(env === "release" ? [ + new webpack.DefinePlugin({ + "process.env": { + NODE_ENV: "'production'", + VERSION: JSON.stringify(require("./package.json").version) + } + }), + ] : [ + new webpack.HotModuleReplacementPlugin(), + new webpack.DefinePlugin({ + "process.env": { + NODE_ENV: "'development'", + VERSION: JSON.stringify(require("./package.json").version) + } + }), + new webpack.WatchIgnorePlugin([ + /css\.d\.ts$/, + /less\.d\.ts$/ + ]), + new CopyWebpackPlugin([{ + from: './assets/version.json', + to: './version.json' + }]) + ]) + ], + + devServer: { + public: "http://localhost:3100", + contentBase: distPath, + + compress: true, + headers: { + "Access-Control-Allow-Origin": "*" + }, + host: "0.0.0.0", + port: 3100, + disableHostCheck: true, + historyApiFallback: true, + inline: true, + hot: false, + quiet: false, + stats: { + colors: true + }, + proxy: { + "/about": { + // target: "http://10.20.6.29:48181", + target: "http://sdnr:8181", + secure: false + }, + "/yang-schema/": { + target: "http://sdnr:8181", + secure: false + }, + "/oauth/": { + // target: "https://10.20.35.188:30205", + target: "http://sdnr:8181", + secure: false + }, + "/oauth2/": { + // target: "https://10.20.35.188:30205", + target: "http://sdnr:8181", + secure: false + }, + "/database/": { + target: "http://sdnr:8181", + secure: false + }, + "/restconf/": { + target: "http://sdnr:8181", + secure: false + }, + "/rests/": { + target: "http://sdnr:8181", + secure: false + }, + "/help/": { + target: "http://sdnr:8181", + secure: false + }, + "/about/": { + target: "http://sdnr:8181", + secure: false + }, + "/tree/": { + target: "http://sdnr:8181", + secure: false + }, + "/websocket": { + target: "http://sdnr:8181", + ws: true, + changeOrigin: true, + secure: false + }, + "/apidoc": { + target: "http://sdnr:8181", + ws: true, + changeOrigin: true, + secure: false + } + } + } + }]; +} + + -- cgit 1.2.3-korg