aboutsummaryrefslogtreecommitdiffstats
path: root/sdnr/wt/odlux/framework/webpack.config.js
diff options
context:
space:
mode:
Diffstat (limited to 'sdnr/wt/odlux/framework/webpack.config.js')
-rw-r--r--sdnr/wt/odlux/framework/webpack.config.js530
1 files changed, 265 insertions, 265 deletions
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
+ }
+ }
+ }
+ }];
+}
+
+