2 * Webpack 4 configuration file
3 * see https://webpack.js.org/configuration/
4 * see https://webpack.js.org/configuration/dev-server/
9 const path = require("path");
10 const webpack = require("webpack");
11 const CopyWebpackPlugin = require("copy-webpack-plugin");
12 const TerserPlugin = require('terser-webpack-plugin');
14 const policies = require('./policies.json');
16 // const __dirname = (path => path.replace(/^([a-z]\:)/, c => c.toUpperCase()))(process.__dirname());
18 module.exports = (env) => {
19 const distPath = path.resolve(__dirname, env === "release" ? "." : "../..", "dist");
20 const frameworkPath = path.resolve(__dirname, env === "release" ? "../../framework" : "../..", "dist");
24 mode: "none", //disable default behavior
28 context: path.resolve(__dirname, "src"),
31 connectApp: ["./pluginConnect.tsx"]
34 devtool: env === "release" ? false : "source-map",
37 extensions: [".ts", ".tsx", ".js", ".jsx"]
42 filename: "[name].js",
44 libraryTarget: "umd2",
45 chunkFilename: "[name].js"
50 exclude: /node_modules/,
52 loader: "babel-loader"
58 exclude: /node_modules/,
60 loader: "babel-loader"
67 namedModules: env !== "release",
68 minimize: env === "release",
69 minimizer: env !== "release" ? [] : [new TerserPlugin({
71 warnings: false, // false, true, "verbose"
80 new webpack.DllReferencePlugin({
81 context: path.resolve(__dirname, "../../framework/src"),
82 manifest: require(path.resolve(frameworkPath, "vendor-manifest.json")),
85 new webpack.DllReferencePlugin({
86 context: path.resolve(__dirname, "../../framework/src"),
87 manifest: require(path.resolve(frameworkPath, "app-manifest.json")),
90 ...(env === "release" ? [
91 new webpack.DefinePlugin({
93 NODE_ENV: "'production'",
94 VERSION: JSON.stringify(require("./package.json").version)
98 new webpack.DefinePlugin({
100 NODE_ENV: "'development'",
101 VERSION: JSON.stringify(require("./package.json").version)
104 new CopyWebpackPlugin([{
112 public: "http://localhost:3100",
113 contentBase: frameworkPath,
117 "Access-Control-Allow-Origin": "*"
121 disableHostCheck: true,
122 historyApiFallback: true,
129 before: function(app, server, compiler) {
130 app.get('/oauth/policies',(_, res) => res.json(policies));
134 target: "http://sdnr:8181",
138 target: "http://sdnr:8181",
142 target: "http://sdnr:8181",
146 target: "http://sdnr:8181",
150 target: "http://sdnr:8181",
154 target: "http://sdnr:8181",
158 target: "http://sdnr:8181",
162 target: "http://sdnr:8181",
166 target: "http://sdnr:8181",
170 target: "http://sdnr:8181",
174 target: "http://sdnr:8181",
178 target: "http://sdnr:8181",
184 target: "http://sdnr:8181",