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 TerserPlugin = require('terser-webpack-plugin');
13 // const __dirname = (path => path.replace(/^([a-z]\:)/, c => c.toUpperCase()))(process.__dirname());
15 module.exports = (env) => {
16 const distPath = path.resolve(__dirname, env === "release" ? "." : "..", "dist");
17 const frameworkPath = path.resolve(__dirname, env === "release" ? "." : "..", "dist");
21 mode: "none", //disable default behavior
25 context: path.resolve(__dirname, "src"),
31 devtool: env === "release" ? false : "source-map",
34 extensions: [".ts", ".tsx", ".js", ".jsx"]
39 filename: "[name].js",
41 libraryTarget: "umd2",
42 chunkFilename: "[name].js"
47 exclude: /node_modules/,
49 loader: "babel-loader"
55 exclude: /node_modules/,
57 loader: "babel-loader"
63 namedModules: env !== "release",
64 minimize: env === "release",
65 minimizer: env !== "release" ? [] : [new TerserPlugin({
67 warnings: false, // false, true, "verbose"
76 new webpack.DllReferencePlugin({
77 context: path.resolve(__dirname, "./src"),
78 manifest: require(path.resolve(frameworkPath, "app-manifest.json")),