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 autoprefixer = require('autoprefixer');
12 const CopyWebpackPlugin = require("copy-webpack-plugin");
13 const TerserPlugin = require('terser-webpack-plugin');
15 // const __dirname = (path => path.replace(/^([a-z]\:)/, c => c.toUpperCase()))(process.__dirname());
17 module.exports = (env) => {
18 const distPath = path.resolve(__dirname, env === "release" ? "." : "../..", "dist");
19 const frameworkPath = path.resolve(__dirname, env === "release" ? "../../framework" : "../..", "dist");
23 mode: "none", //disable default behavior
27 context: path.resolve(__dirname, "src"),
30 helpApp: ["./plugin.tsx"]
33 devtool: env === "release" ? false : "source-map",
36 extensions: [".ts", ".tsx", ".js", ".jsx"]
41 filename: "[name].js",
43 libraryTarget: "umd2",
44 chunkFilename: "[name].js"
49 exclude: /node_modules/,
51 loader: "babel-loader"
57 exclude: /node_modules/,
59 loader: "babel-loader"
64 loader: 'style-loader'
69 localIdentName: env !== "release" ? '[name]_[local]_[hash:base64:5]' : '[hash]'
72 loader: 'postcss-loader',
74 plugins: () => [autoprefixer]
79 test: /\.(png|gif|jpg|svg)$/,
84 name: './images/[name].[ext]'
92 namedModules: env !== "release",
93 minimize: env === "release",
94 minimizer: env !== "release" ? [] : [new TerserPlugin({
96 warnings: false, // false, true, "verbose"
106 new webpack.DllReferencePlugin({
107 context: path.resolve(__dirname, "../../framework/src"),
108 manifest: require(path.resolve(frameworkPath, "vendor-manifest.json")),
111 new webpack.DllReferencePlugin({
112 context: path.resolve(__dirname, "../../framework/src"),
113 manifest: require(path.resolve(frameworkPath, "app-manifest.json")),
116 ...(env === "release" ? [
117 new webpack.DefinePlugin({
119 NODE_ENV: "'production'",
120 VERSION: JSON.stringify(require("./package.json").version)
124 new webpack.DefinePlugin({
126 NODE_ENV: "'development'",
127 VERSION: JSON.stringify(require("./package.json").version)
130 new CopyWebpackPlugin([{
137 public: "http://localhost:3100",
138 contentBase: frameworkPath,
142 "Access-Control-Allow-Origin": "*"
146 disableHostCheck: true,
147 historyApiFallback: true,
156 //target: "http://10.20.6.29:48181",
157 target: "http://sdnr:8181",
161 //target: "http://10.20.6.29:48181",
162 target: "http://sdnr:8181",
166 //target: "http://10.20.6.29:48181",
167 target: "http://sdnr:8181",
171 target: "http://sdnr:8181",
175 //target: "http://10.20.6.29:48181",
176 target: "http://sdnr:8181",
180 //target: "http://10.20.6.29:48181",
181 target: "http://sdnr:8181",