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');
13 const proxyConf = require('../../proxy.conf');
15 const policies = require('./policies.json');
17 // const __dirname = (path => path.replace(/^([a-z]\:)/, c => c.toUpperCase()))(process.__dirname());
19 module.exports = (env) => {
20 const distPath = path.resolve(__dirname, env === "release" ? "." : "../..", "dist");
21 const frameworkPath = path.resolve(__dirname, env === "release" ? "../../framework" : "../..", "dist");
25 mode: "none", //disable default behavior
29 context: path.resolve(__dirname, "src"),
32 configurationApp: ["./pluginConfiguration.tsx"]
35 devtool: env === "release" ? false : "source-map",
38 extensions: [".ts", ".tsx", ".js", ".jsx"]
43 filename: "[name].js",
44 library: "configurationApp",
45 libraryTarget: "umd2",
46 chunkFilename: "[name].js"
51 exclude: /node_modules/,
53 loader: "babel-loader"
59 exclude: /node_modules/,
61 loader: "babel-loader"
65 test: /\.(png|gif|jpg|svg)$/,
70 name: './images/[name].[ext]'
78 namedModules: env !== "release",
79 minimize: env === "release",
80 minimizer: env !== "release" ? [] : [new TerserPlugin({
82 warnings: false, // false, true, "verbose"
92 new webpack.DllReferencePlugin({
93 context: path.resolve(__dirname, "../../framework/src"),
94 manifest: require(path.resolve(frameworkPath, "vendor-manifest.json")),
97 new webpack.DllReferencePlugin({
98 context: path.resolve(__dirname, "../../framework/src"),
99 manifest: require(path.resolve(frameworkPath, "app-manifest.json")),
102 ...(env === "release" ? [
103 new webpack.DefinePlugin({
105 NODE_ENV: "'production'",
106 VERSION: JSON.stringify(require("./package.json").version)
110 new webpack.DefinePlugin({
112 NODE_ENV: "'development'",
113 VERSION: JSON.stringify(require("./package.json").version)
116 new CopyWebpackPlugin([{
124 ignored: /node_modules/
128 contentBase: frameworkPath,
132 "Access-Control-Allow-Origin": "*"
136 disableHostCheck: true,
137 historyApiFallback: true,
144 before: function(app, server, compiler) {
145 app.get('/oauth/policies',(_, res) => res.json(policies));